Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс для работы с MYSQL 
:(
    Опции темы
N1k0laj_BY
Дата 6.2.2007, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.2.2007

Репутация: нет
Всего: нет



Посмотрите на мой класс для работы с БД MySQL.
Имеет ли смысл его использовать(мне им удобно пользоваться сложно ошибиться в синтаксисе запроса)? Какие ошибки. В общем критикуйте.
Код

 <?PHP
class mDB
{
   var $hostname, $password, $username, $dbName;
   var $view_sql = false;
   var $view_error = false;
   var $def_error = false;

/*=====================================================================================
                             Функции
=======================================================================================*/
  //подключение к БД
  function mDB($hostname, $password, $username, $dbName)
 {
    $this->hostname =$hostname;
    $this->password = $password;
    $this->username = $username;
    $this->dbName = $dbName;
    /* создать соединение */ 
    mysql_connect($this->hostname,$this->username,$this->password) OR DIE($this->error());
    /* выбрать базу данных. Если произойдет ошибка - вывести ее */ 
    mysql_select_db($dbName) or die($this->error()); 
  }// end conectDB
  
  //выбор БД
  function sel_db($dbName)
  {
    $this->dbName = $dbName;
    mysql_select_db($dbName) or die($this->error()); 
  }
  /*====================================================================================
        Функции отвечающие за вывод ошибок и текстов запросов
   ==================================================================================*/
  //выводить ошибки или нет
  function set_view_error($view = true)
  {
    $this->view_error = $view;
  }
  //выводить текст запроса или нет
  function set_view_sql($view = true)
   {
    $this->view_sql = $view;
   }
  //выводит ошибки запроса
  private function error()
  {
    if ($this->view_error)
       return mysql_error();
    else return $this->def_error;   
    
  }
  //выводит сам запрос к БД
  private function view_sql($sql)
  {
    if ($this->view_sql)
       echo $sql;
  }
  //устанавливает какое сообщение выводить вслучае ошибки
  function set_def_error($error)
  {
    $this->def_error = $error;
  }
  /*============================================================================
       Функции запросов к БД
  ===============================================================================*/
  // запрос SELECT
  function sel($pole,$table,$where='',$limit='',$order='',$arr = false)
  {
        
        if ($where!='')
           $where = 'where('.$where.')';
        if ($limit != '')
            $limit = 'LIMIT '.$limit.'';
        if ($order != '')
            $order = 'ORDER BY '.$order;
        $sql = "SELECT $pole FROM $table $where $order $limit";
        $result = mysql_query($sql) or die($this->error() );
        
        if (!$arr)
          return $result;
        else //если нажо сразу сформировать массив данных, когда запрос выбирает только одну строку
        {
           $array = mysql_fetch_array($result) or die($this->error());
            return $array;
        }//else
    }//end sel
    
    //последнее сгенерированное  
    function last_insert_id()
    {
        $result = mysql_fetch_array(mysql_query('SELECT LAST_INSERT_ID()'));
        return $result[0];
        
    }
    
    function del($table,$where)
    {
      $sql = "DELETE FROM $table WHERE ($where)";
      
      mysql_query($sql) or die ($this->error());
    }
     //обновление записей
     function upd($table,$pole,$where ='')
     {
      if ($where!='')
          $where = 'where ('.$where.')';
          $sql = "UPDATE $table SET $pole $where ";
          mysql_query($sql) or die($this->error());
          
    }
    //вставка записи
    function ins($table,$pole,$value)
    {
       $sql = 'INSERT INTO '.$table.'('.$pole.') values('.$value.')';
      
       $result = mysql_query($sql) or die($this->error());
    }
   //проверка авторизации
   function avt($table,$login,$pass){
      $sql = 'SELECT id FROM '.$table.' where(name="'.$login.'" and pass="'.$pass.'")';
      $result = mysql_query($sql) or die($this->error());
      if (mysql_num_rows($result)>0) return true;
      else return false; 
   }
   //проверка существования 
   function chek($table,$p1,$v1,$p2='',$v2=''){
    if ($p2 == '')
    {
        $and = '';
    } else $and = 'and '.$p2.'="'.$v2.'"';
     $sql = "SELECT id FROM $table where($p1='$v1' $and)";
     $result = mysql_query($sql) or die($this->error());
     if (mysql_num_rows($result)>0) $a=true; else $a = false; 
     return $a; 
   }
   //подсчет количества записей
   function num($table,$pole,$where=''){
     if($where!='')
        $where = 'where('.$where.')';
      $sql = "SELECT COUNT($pole) FROM $table $where ";
      $result = mysql_query($sql) or die($this->error());
      $arr = mysql_fetch_array($result);
      return $arr[0];
   }
  }//clacc mDB
  
  
  ?>

PM MAIL   Вверх
-=Ustas=-
Дата 7.2.2007, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Скажи ка, что тут "function avt" делает?! И какое ты видишь отношение такой сущности как "пользователь" (в частности его действие авторизации) к объекту БД?  smile 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
N1k0laj_BY
Дата 7.2.2007, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.2.2007

Репутация: нет
Всего: нет



Цитата(-=Ustas=- @ 7.2.2007,  01:01)
Скажи ка, что тут "function avt" делает?! И какое ты видишь отношение такой сущности как "пользователь" (в частности его действие авторизации) к объекту БД?  smile

Добавил в этот класс так как часто пользуюсь такой авторизацией.
PM MAIL   Вверх
Mal Hack
Дата 7.2.2007, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Вы про PDO слышали? Рекомендую почитать, позволит сосредоточить усилия, на более интересных вещах.
PM ICQ   Вверх
SamDark
Дата 8.2.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



По-моему лучшее творение в этой области: http://dklab.ru/lib/DbSimple/


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Opik
Дата 8.2.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 2
Всего: 55



N1k0laj_BY, 
Имхо имеет смысл посмотреть в сторону PDO или mysqli, чем изобретать велосипед.
PM MAIL Skype   Вверх
N1k0laj_BY
Дата 9.2.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.2.2007

Репутация: нет
Всего: нет



Буду лучше использовать PDO, все равно чтобы мой класс использовать в любом проекте, когда применяются сложные запросы его придется сильно расширять, что займет много лишнего времени. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.