|
|
База данныхКласс с функциями для работы с базой данных – DB – определен в файле includes/database.php. Все функции имеют access: public, что означает, что вызывать их в diafan.CMS можно откуда угодно, из любого файла и модуля. Вызываются функции в формате: Например, чтобы сделать запрос к таблице diafan_people, и выудить оттуда все поля с сотрудниками из одного отдела, нужно сделать так:
$rows = DB::query_result("SELECT fio FROM diafan_people WHERE otdel=%d", $otdel); Указывая таблицу, можно не писать префикс diafan_people, а написать {people}. $rows = DB::query_result("SELECT fio FROM {people} WHERE otdel=%d", $otdel); Обратите внимание, в примере мы не пишем WHERE otdel=$otdel, а пишем WHERE otdel=%d. Это сделано для безопасности, чтобы можно было спокойно делать запросы с внешними переменными типа $_GET["otdel"]. Для фильтрации аргументов SQL-запроса, вместо данных передаются маски, а данные передаются в качестве дополнительных аргументов для функций
Название таблицы пишется без профикса в фигурных скобках. Пример: {attachments}
Переводимые переменные в SQL-запросе пишутся в квадратных скобках. Пример: [name]
Для проверки, правильно ли сформировался SQL-запрос, или для отладки, запрос можно вывести на экран. Для этого нужно перед запросом написать "DEV " и включить режим разработки. Пример:
$this->result["text"] = DB::query_result("DEV SELECT [text] FROM {shop_category} WHERE id=%d", $this->diafan->cat); Функции для работы с БДresource connect(string $url) – пробует подключится к базе данных.
Пример:
DB::connect("mysql://user_sql:pass@localhost/diafan_base"); Подключаемся, например, к другой БД на хостинге. array fetch_array($result) – извлекает результирующий ряд как массив.
Пример:
$result = DB::query("SELECT name FROM {site} ORDER BY name ASC");
Выводим все имена из базы. object fetch_object($result) – извлекает результирующий ряд как объект.
integer next_id (string $table) – получает номер id для таблицы $table.
Пример:
$id = DB::next_id("rewrite");
Присваиваем переменной значение ID, который добавится в таблицу rewrite следующим. integer num_rows($result) – получает количество рядов в результате.
Пример:
$result = DB::query("SELECT id FROM {people} WHERE age>30");
Выводим количество человек, чей возраст более 30 лет. resource query($query) – отправляет запрос к базе данных.
Пример:
DB::query("INSERT INTO {firm} (name, inn, text) VALUES ('%s', '%d', '%s')",
Вставляем в таблицу firm данные. resource query_range($query) – отправляет запрос к базе данных с лимитом на количество получаемых в результате рядов.
Пример:
$result_img = DB::query_range("SELECT name, id FROM {image} WHERE trash=0");
Получаем имена картинок из БД. mixed query_result($query) – получает результирующие данные из SQL-запроса.
Пример:
$text = DB::query_result("SELECT [text] FROM {shop_category} WHERE id=%d", $this->diafan->cat);
Получаем описание текущей категории из БД. mixed result($result, [ $row = 0]) – получает результирующие данные.
mixed title(string $table, integer $id, string $param_name) – возвращает значение поля $param_name для таблицы $table и строки с номером $id.
Пример:
echo DB::title("users", 3, "fio");
Выводим ФИО пользователя с id=3 из таблицы users. mixed where(string $table, string $where, string $param_name) – возвращает значение поля $param_name для таблицы $table и одной строки, соответствующей запросу $where.
Пример:
DB::where("people", "parent_id=3 AND act=1", "sort");
Выводим поля name из таблицы people с условием что они активны и родительская категория = 3. Не понятно? Уточните |
|
© 2003 - 2012 гг. diafan.CMS версия 5.0 CMS brand free ООО "Диафан" (495)64-603-61, (3532)30-60-86 |
|

