Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- Class db{
- private $mysqli;
- public function connect($cfg){//Функция подключения ,при вызове передаём настройки с данными от бд
- $this->mysqli = new mysqli($cfg['bd']['host'], $cfg['bd']['user'], $cfg['bd']['password'], $cfg['bd']['name']);//подключение к бд
- $this->mysqli->query("SET NAMES 'utf8'");//установка кодировки
- $this->mysqli->set_charset("utf8");//установка кодировки
- }
- public function get($table,$columns='*',$filter=false){//функция для получения данных из бд ,при вызове передаём: название таблица, [название столбцов], [дополнительный sql фильтр]
- $filter = ($filter !== false)? ' WHERE '.$this->mysqli->real_escape_string($filter):'';//получаем данные из бд
- return $this->changeToArray($this->mysqli->query("SELECT $columns FROM `$table`".$filter));//преобразовываем их в двух мерный массив и возращяем
- }
- public function add($table,$data){//добавления данных в бд, при вызове передаём: названия таблицы, массив вида 'название столбца'=>'данные'
- $keys = '';//тут будут хранится название столбцов
- $values = '';//тут будут хранится вносимые данные
- foreach($data as $key=>$val) {//перебор входящего массива
- if(gettype($val) !== 'string' || gettype($val) !== '"integer"') $val = json_encode($val);//если переданые данные не явлиются ,не строкой и не числом преобразовываем их в json-данные
- $keys .= '`'.$this->mysqli->real_escape_string($key).'`, ';//добавляем новое название столбца
- if(gettype($val) === 'integer') $values .= $this->mysqli->real_escape_string($val).' , ';//добавляем новые данные
- else $values .= '\''.$this->mysqli->real_escape_string($val).'\', ';//добавляем новые данные
- }
- $keys = substr($keys, 0, -2);//обрезаем лишний пробел и запятую
- $values = substr($values, 0, -2);//обрезаем лишний пробел и запятую
- $this->mysqli->query("INSERT INTO `$table` ($keys) VALUES ($values)");//добалвяем данные в БД
- }
- public function edit($table,$filter,$data){//функция редактирования, при вызове передаём: названия таблицы,фильтр, массив вида 'название столбца'=>'данные'
- $sql_data = '';//тут будет хранится sql запрос
- foreach($data as $key=>$val) {//переберам данные
- if(gettype($val) !== 'string' || gettype($val) !== '"integer"') $val = json_encode($val);//если переданые данные не явлиются ,не строкой и не числом преобразовываем их в json-данные
- if(gettype($val) === 'integer') $sql_data = '`'.$this->mysqli->real_escape_string($key).'`='.$this->mysqli->real_escape_string($val).', ';//добавляем новые данный в sql запрос
- else $sql_data = '`'.$this->mysqli->real_escape_string($key).'`=\''.$this->mysqli->real_escape_string($val).'\', ';//добавляем новые данный в sql запрос
- }
- $sql_data = substr($sql_data, 0, -1);//обрезаем линюю запятую
- $this->mysqli->query("UPDATE `$table` SET $sql_data WHERE ".$filter);//обновляем данные в бд
- }
- public function delete($table,$filter=false){//функция удаления ,при вызове передаём: название таблицы, [фильтр]
- $filter = ($filter !== false)? ' WHERE '.$this->mysqli->real_escape_string($filter):'';//если фильтр равен false присваевам ему постое значение
- $this->mysqli->query("DELETE FROM `$table`".$filter);//удаляем данные из бд
- }
- private function changeToArray($result) {//внутреняя функция для преобразования sql данных в двухмерный массив
- if($result===false) return array();
- $results = array();
- while(($row = $result->fetch_assoc()) != false) $results[] = $row;
- return $results;
- }
- public function __destruct() {//функция закрытия соединения.
- $this->mysqli->close();
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement