Класс DB - предназначен для работы с базой данных.
Доступен из любой точки программы.
Реализован в виде синглтона, что исключает его дублирование.
Все запросы выполняемые в коде движка должны обязательно проходить через метод DB::query() данного класса, а параметры запроса экранироваться методом DB::quote();
- Создает соединение с БД средствами mysqli;
- Защищает базу от SQL инъекций;
- Ведет логирование запросов если установленна данная опция;
string | buildPartQuery() |
Строит часть запроса из полученного ассоциативного массива.
$array = ( |
obj|bool | buildQuery() |
Строит часть запроса из полученного ассоциативного массива и исполняет запрос.
$array = array( |
array | fetchAssoc() |
Возвращает ряд результата запроса в виде ассоциативного массива.
$res = DB::query($sql); |
obj | fetchObject() |
Возвращает ряд результата запроса в виде объекта.
$res = DB::query($sql); |
array | fetchArray() |
Возвращает ряд результата запроса в виде массива с ассоциативными и числовыми ключами.
$res = DB::query($sql); |
obj | fetchRow() |
Возвращает ряд результата запроса в виде массива с числовыми ключами.
$res = DB::query($sql); |
int | insertId() |
Возвращает автоматически сгенерированный ID, созданный последним INSERT запросом.
$lastId = DB::insertId(); |
int | numRows() |
Возвращает количество рядов результата запроса.
$res = DB::query($sql); |
int | affectedRows() |
Получает число строк, затронутых предыдущей операцией MySQL.
DB::query($sql); |
void | createIndexIfNotExist() |
Функция для создания индексов в таблицах с проверкой на их существование.
$table = 'property_data'; |
obj|bool | query() |
Выполняет запрос к БД.
$sql = "SELECT * FROM `".PREFIX."product`"; |
string | quote() |
Экранирует кавычки для части запроса.
// использование с кавычками |
int | quoteInt() |
Экранирует кавычки для части запроса и преобразует экранируемую часть запроса в тип integer.
$id = '123'; |
int | quoteFloat() |
Экранирует кавычки для части запроса, заменяет запятую на точку и преобразует экранируемую часть запроса в тип float.
$summ = '123,45'; |
string | quoteIN() |
Экранирует кавычки для части запроса и преобразует экранируемую часть запроса в пригодный вид для условий типа IN.
$titleArr = array( |
string | errorLog() | Пишет в лог запросы с синтаксическими ошибками. |
string | console() |
Выводит консоль запросов и ошибок.
echo DB::console('Тест');
|
string | lastQuery() |
Выводит последний выполненный SQL запрос.
$lastQuery = DB::lastQuery(); |
int | idAutoIncrement() |
Возвращает следующее значение auto_increment таблицы.
$idAutoIncrementTables = DB::idAutoIncrement("product"); |
int | addAutoIncrement() |
Увеличивает значение auto_increment таблицы на заданное число.
$idAutoIncrementTables = DB::addAutoIncrement("product",1); |
void | close() |
Закрывает соединение с БД.
DB::close();
|
Метод
string buildPartQuery (array $array, string $devide = ,)
Параметры
Описание
Строит часть запроса из полученного ассоциативного массива.
$array = (
'login' => 'admin',
'pass' => '1',
);
// преобразует массив в строку: "'login' = 'admin', 'pass' = '1'"
DB::buildPartQuery($array);
Метод
obj|bool buildQuery (array $array, string $devide = ,)
Параметры
Описание
Строит часть запроса из полученного ассоциативного массива и исполняет запрос.
$array = array(
'parent_url' => '',
'parent' => 0,
'title' => 'Блог',
'url' => 'blog',
'html_content' => 'Наш блог'
);
DB::buildQuery("INSERT INTO `".PREFIX."page` SET ", $array);
Метод
array fetchAssoc (obj $object)
Параметры
Описание
Возвращает ряд результата запроса в виде ассоциативного массива.
$res = DB::query($sql);
while ($row = DB::fetchAssoc($res)) {
viewdata($row);
}
Метод
obj fetchObject (obj $object)
Параметры
Описание
Возвращает ряд результата запроса в виде объекта.
$res = DB::query($sql);
while ($row = DB::fetchObject($res)) {
viewdata($row);
}
Метод
array fetchArray (obj $object)
Параметры
Описание
Возвращает ряд результата запроса в виде массива с ассоциативными и числовыми ключами.
$res = DB::query($sql);
while ($row = DB::fetchArray($res)) {
viewdata($row);
}
Метод
obj fetchRow (obj $object)
Параметры
Описание
Возвращает ряд результата запроса в виде массива с числовыми ключами.
$res = DB::query($sql);
while ($row = DB::fetchRow($res)) {
viewdata($row);
}
Метод
int insertId ()
Описание
Возвращает автоматически сгенерированный ID, созданный последним INSERT запросом.
$lastId = DB::insertId();
viewdata($lastId);
Метод
int numRows (obj $object)
Параметры
Описание
Возвращает количество рядов результата запроса.
$res = DB::query($sql);
$numRows = DB::numRows($res);
viewdata($numRows);
Метод
int affectedRows ()
Описание
Получает число строк, затронутых предыдущей операцией MySQL.
DB::query($sql);
$affectedRows = DB::affectedRows();
viewdata($affectedRows);
Метод
createIndexIfNotExist (string $table, string $column)
Параметры
Описание
Функция для создания индексов в таблицах с проверкой на их существование.
$table = 'property_data';
$column = 'id';
DB::createIndexIfNotExist($table, $column);
Метод
obj|bool query (string $sql, bool $noError = false, $addLog = false)
Параметры
Описание
Выполняет запрос к БД.
$sql = "SELECT * FROM `".PREFIX."product`";
$res = DB::query($sql);
while ($row = DB::fetchAssoc($res)) {
viewdata($row);
}
Метод
string quote (string $string, string $noQuote = false)
Параметры
Описание
Экранирует кавычки для части запроса.
// использование с кавычками
$title = 'Чука Крабс';
$sql = "SELECT * FROM `".PREFIX."product` WHERE `title` = ".DB::quote($title);
// использование без кавычек
$title = 'дверь';
$sql = "SELECT * FROM `".PREFIX."product` WHERE `title` LIKE '%".DB::quote($title, true)."%'";
// опасный запрос от пользователя
$_POST['title'] = "Чука Крабс';TRUNCATE mg_setting";
$sql = "SELECT * FROM `".PREFIX."product` WHERE `title` = ".DB::quote($_POST['title']);
Метод
int quoteInt (string $string, string $noQuote = false)
Параметры
Описание
Экранирует кавычки для части запроса и преобразует экранируемую часть запроса в тип integer.
$id = '123';
$sql = "SELECT * FROM `".PREFIX."order` WHERE `id` = ".DB::quoteInt($id);
Метод
int quoteFloat (string $string, string $noQuote = false)
Параметры
Описание
Экранирует кавычки для части запроса, заменяет запятую на точку и преобразует экранируемую часть запроса в тип float.
$summ = '123,45';
$sql = "SELECT * FROM `".PREFIX."order` WHERE `summ` = ".DB::quoteFloat($summ);
Метод
string quoteIN (string $string, bool $returnNull = true)
Параметры
Описание
Экранирует кавычки для части запроса и преобразует экранируемую часть запроса в пригодный вид для условий типа IN.
$titleArr = array(
'Чука Крабс',
'Дверь межкомнаткая Тенго 22A',
'Стол кухонный Bin04'
);
$sql = "SELECT * FROM `".PREFIX."product` WHERE `title` IN (".DB::quoteIN($titleArr).")";
Метод
string errorLog (string $text)
Параметры
Описание
Пишет в лог запросы с синтаксическими ошибками.
Метод
string console (string $text, string $memory = false, string $start = false)
Параметры
Описание
Выводит консоль запросов и ошибок.
echo DB::console('Тест');
Метод
string lastQuery ()
Описание
Выводит последний выполненный SQL запрос.
$lastQuery = DB::lastQuery();
viewdata($lastQuery);
Метод
int idAutoIncrement ()
Описание
Возвращает следующее значение auto_increment таблицы.
$idAutoIncrementTables = DB::idAutoIncrement("product");
viewdata($idAutoIncrementTables);