Advertisement
zero50x

Класс для работы с БД

Sep 22nd, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.52 KB | None | 0 0
  1. <?php
  2.  
  3. class MyDB{
  4.         private $db = null;
  5.         private $result = null;
  6.  
  7.     /*Конструктору передаем адрес, имя пользователя, пароль, имя базы данных, порт, а также кодировку для соединения.
  8.     По умолчанию используется utf8*/
  9.         public function __construct($host, $user, $password, $base, $port = null, $charset = 'utf8')
  10.         {
  11.                 $this->db = new mysqli($host, $user, $password, $base, $port);
  12.                 $this->db->set_charset($charset);
  13.         }
  14.  
  15.     /*основная и единственная функция, которая выполняет запрос и возвращает результат его работы*/
  16.         public function query($query)
  17.         {
  18.                 if(!$this->db)
  19.                         return false;
  20.  
  21.     /*очищаем предыдущий результат*/
  22.                 if(is_object($this->result))
  23.                         $this->result->free();
  24.  
  25.     /*выполняем запрос*/
  26.                 $this->result = $this->db->query($query);
  27.  
  28.     /*если есть ошибки - выводим их*/
  29.                 if($this->db->errno)
  30.                         die("mysqli error #".$this->db->errno.": ".$this->db->error);
  31.  
  32.     /*если в результате выполнения запроса (например SELECT...) получены данные - возвращаем их.
  33.     ВНИМАНИЕ! данные всегда возвращаются в массиве, даже если запрос возвращает одну запись.*/
  34.  
  35.                 if(is_object($this->result)){
  36.                         while($row = $this->result->fetch_assoc())
  37.                                 $data[] = $row;
  38.                                 return $data;
  39.                 }
  40.  
  41.     /*если результат отрицательный - возвращаем false*/
  42.                 else if($this->result == FALSE)
  43.                         return false;
  44.                        
  45.     /*если запрос (например UPDATE или INSERT) затронул какие-либо строки - возвращаем их количество*/
  46.                 else return $this->db->affected_rows;
  47.         }
  48. }
  49.  
  50. //Используем так:
  51.  
  52. $db = new MyDB("localhost", "user", "pass", "db");
  53. $data = $db->query("SELECT * FROM `0_unique`");
  54. print_r($data); //выводим полученные данные
  55.  
  56. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement