Advertisement
Guest User

Untitled

a guest
Apr 29th, 2015
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. <?php
  2. Class db{
  3. private $mysqli;
  4.  
  5. public function connect($cfg){//Функция подключения ,при вызове передаём настройки с данными от бд
  6. $this->mysqli = new mysqli($cfg['bd']['host'], $cfg['bd']['user'], $cfg['bd']['password'], $cfg['bd']['name']);//подключение к бд
  7. $this->mysqli->query("SET NAMES 'utf8'");//установка кодировки
  8. $this->mysqli->set_charset("utf8");//установка кодировки
  9. }
  10.  
  11. public function get($table,$columns='*',$filter=false){//функция для получения данных из бд ,при вызове передаём: название таблица, [название столбцов], [дополнительный sql фильтр]
  12. $filter = ($filter !== false)? ' WHERE '.$this->mysqli->real_escape_string($filter):'';//получаем данные из бд
  13. return $this->changeToArray($this->mysqli->query("SELECT $columns FROM `$table`".$filter));//преобразовываем их в двух мерный массив и возращяем
  14. }
  15.  
  16. public function add($table,$data){//добавления данных в бд, при вызове передаём: названия таблицы, массив вида 'название столбца'=>'данные'
  17. $keys = '';//тут будут хранится название столбцов
  18. $values = '';//тут будут хранится вносимые данные
  19. foreach($data as $key=>$val) {//перебор входящего массива
  20. if(gettype($val) !== 'string' || gettype($val) !== '"integer"') $val = json_encode($val);//если переданые данные не явлиются ,не строкой и не числом преобразовываем их в json-данные
  21. $keys .= '`'.$this->mysqli->real_escape_string($key).'`, ';//добавляем новое название столбца
  22. if(gettype($val) === 'integer') $values .= $this->mysqli->real_escape_string($val).' , ';//добавляем новые данные
  23. else $values .= '\''.$this->mysqli->real_escape_string($val).'\', ';//добавляем новые данные
  24. }
  25. $keys = substr($keys, 0, -2);//обрезаем лишний пробел и запятую
  26. $values = substr($values, 0, -2);//обрезаем лишний пробел и запятую
  27. $this->mysqli->query("INSERT INTO `$table` ($keys) VALUES ($values)");//добалвяем данные в БД
  28. }
  29.  
  30. public function edit($table,$filter,$data){//функция редактирования, при вызове передаём: названия таблицы,фильтр, массив вида 'название столбца'=>'данные'
  31. $sql_data = '';//тут будет хранится sql запрос
  32. foreach($data as $key=>$val) {//переберам данные
  33. if(gettype($val) !== 'string' || gettype($val) !== '"integer"') $val = json_encode($val);//если переданые данные не явлиются ,не строкой и не числом преобразовываем их в json-данные
  34. if(gettype($val) === 'integer') $sql_data = '`'.$this->mysqli->real_escape_string($key).'`='.$this->mysqli->real_escape_string($val).', ';//добавляем новые данный в sql запрос
  35. else $sql_data = '`'.$this->mysqli->real_escape_string($key).'`=\''.$this->mysqli->real_escape_string($val).'\', ';//добавляем новые данный в sql запрос
  36. }
  37. $sql_data = substr($sql_data, 0, -1);//обрезаем линюю запятую
  38. $this->mysqli->query("UPDATE `$table` SET $sql_data WHERE ".$filter);//обновляем данные в бд
  39. }
  40.  
  41. public function delete($table,$filter=false){//функция удаления ,при вызове передаём: название таблицы, [фильтр]
  42. $filter = ($filter !== false)? ' WHERE '.$this->mysqli->real_escape_string($filter):'';//если фильтр равен false присваевам ему постое значение
  43. $this->mysqli->query("DELETE FROM `$table`".$filter);//удаляем данные из бд
  44. }
  45.  
  46. private function changeToArray($result) {//внутреняя функция для преобразования sql данных в двухмерный массив
  47. if($result===false) return array();
  48. $results = array();
  49. while(($row = $result->fetch_assoc()) != false) $results[] = $row;
  50. return $results;
  51. }
  52.  
  53. public function __destruct() {//функция закрытия соединения.
  54. $this->mysqli->close();
  55. }
  56. }
  57. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement