Позволяет выполнять один программный код на разных СУБД.
Гибкий уровень абстракции Друпал позволяет легко работать с различными типами баз данных, напримерMySQL или PGSQL. Он максимально сохраняет синтаксис и мощь SQL, изменяя отдельные параметры запросов для разных типов баз и оставляя основные элементы безопасности неизменными.
Большинство обращений к базам данных выполняется с помощью функций () или (). Разработчикам стоит также обратить внимание на функцию (), которая используется в случае запросов, результаты которых нужно будет вывести постранично, и функцию (), которая формирует запросы для сортируемых таблиц.
Например, нужно вывести список последних 10 статей определенного пользователя. Вместо прямого выполнения SQL-запроса
SELECT n.title, n.body, n.created FROM node n WHERE n.uid = $uid LIMIT 0, 10;
можно вызвать функцию Drupal:
$result = ('SELECT n.title, n.body, n.created FROM {node} n WHERE n.uid = %d', $uid, 0, 10);
while ($node = ($result)) {
// Совершить какие-то операции над $node->body, и т.д.
}
Фигурные скобки вокруг 'node' применяются для автоподстановки префиксов таблиц, которую делает функция (). Параметр uid вставляется в запрос через заменитель '%d' и аргумент функции ($uid), что предотвращает SQL-инъекцию, возможною при подаче в $uid вредоносного значения.
Синтакс SQL-конструкции LIMIT зависит от конкретной СУБД, поэтому, следует использовать функцию() для получения соответствующей функциональности.
И наконец, для получения и работы с результатом, преимущественно используйте ().
Константы
| Имя | Описание |
|---|---|
includes/ |
Определяет символы-заполнители, которые должны быть заменены в(). |
Функции
| Имя | Описание |
|---|---|
includes/ |
Возвращает количество записей, изменённых предыдущим запросом. |
includes/ |
Проверяет, корректно ли настроена база данных. |
includes/ |
Проверяет наличие колонки в данной таблице. |
includes/ |
Инициализирует соединение с базой данных. |
includes/ |
Возвращает текст из BLOB-значения. В случае с PostgreSQL, перекодирует данные после выборки из bytea-полей. |
includes/ |
Оборачивает данное поле таблицы в 'DISTINCT()'. Функция добавляет эту обвертку в ‘SELECT’ запроса и возвращает измененный запрос. Эта функция применяется только если ‘DISTINCT’ еще не присутствует в запросе. |
includes/ |
Возвращает корректно-отформатированнное BLOB значение. В случае с PostgreSQL, кодирует данные в bytea-поле. |
includes/ |
Определяет, возратил ли ошибку предыдущий запрос. |
includes/ |
Подготавливает пользовательские данные для использования в SQL-запросе. Предотвращает SQL-инъекции. Примечание: Эта функция работает с PostgreSQL 7.2 или выше. |
includes/ |
Ограничивает использование служебных символов в названиях динамических таблиц и столбцов. |
includes/ |
Выбирает одну запись из результата предыдущего запроса и представляет ее как массив. |
includes/ |
Выбирает одну запись из результата предыдущего запроса и представляет ее как объект. |
includes/ |
Определяет доступность базы данных. Возвращает булевское значение TRUE или FALSE. |
includes/ |
Блокирует таблицу. Эта функция автоматически начинает транзакцию БД. |
includes/ |
Генерирует заполнители для аргументов запроса одного типа. |
includes/ |
Добавляет префиксы (если нужно) ко всем таблицам запроса. |
includes/ |
Выполняет ограниченный диапазоном запрос к активной базе данных. |
includes/ |
Выполняет SELECT-запрос к активной базе данных и сохраняет результат во временной таблице. |
includes/ |
Возвращает одиночное поле результата из предыдущего запроса. |
includes/ |
Изменяет первоначальные запросы нодов, таксономии и комментариев. Часто используется для формирования списков. |
includes/ |
Активирует базу данных для последующих запросов. |
includes/ |
Возвращает отчёт о состоянии базы данных. |
includes/ |
Проверяет, существует ли таблица. |
includes/ |
Разблокирует все заблокированные таблицы. Эта функция автоматически завершает транзакцию. |
includes/ |
Возвращает версию используемого сервера баз данных. |
includes/ |
Выполняет «постраничный» запрос к базе данных. |
includes/ |
Создает сортировочную часть SQL запроса. |
includes/ |
Выполняет SQL-запрос и возвращает статус результата. Используется преимущественно в () и остальных функциях инсталяции/обновления модулей. |
includes/ |
Вспомогательная функция для показа фатальных ошибок в базе данных. |
includes/ |
Вспомогательная функция для (). |
includes/ |
Вспомогательная функция для (). |
includes/ |
Вспомогательная функция для db_rewrite_sql(). |
Источник:



Апрель 7th, 2012
admin
Опубликовано в рубрике
Метки: