Конструктор запросов db_select позволяет абстрагироваться от движка базы данных. Если запрос довольно сложный, то на этапе тестирования может потребоваться, что называется, убедиться в том, что конечный запрос на языке SQL к базе именно тот, что вы ожидаете.
Класс SelectQuery даёт эту возможность через реализацию магического метода __toString().
Покажу на коротком примере как это работает:
|
|
$q = db_select('node', 'n'); $q = $q->fields('n', array('nid')) ->condition('n.type', 'banner') ->condition('n.status', NODE_PUBLISHED) ->orderRandom() ->range(0, 1); $sqlString = (string) $q; // для вывода воспользуемся функцией модуля Devel dpm($sqlString); |
Мы получим следующую строку запроса:
|
|
SELECT n.nid AS nid, RAND() AS random_field FROM {node} n WHERE (n.type = :db_condition_placeholder_0) AND (n.status = :db_condition_placeholder_1) ORDER BY random_field ASC LIMIT 1 OFFSET 0 |
Как видите это не сам запрос, но вполне читаемый SQL шаблон. Для вывода значений подставляемых плейсхолдеров, воспользуйтесь функцией SelectQuery::arguments().
Drupal 7
Данная запись опубликована в 11.04.2019 13:35 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 25, 2019 г.
Блок меню core модуля menu позволяет вывести всю иерархию меню полностью, но иногда требуется показать только 1-2 верхних уровня. Посмотрим как организовать такой вывод.
Drupal в модуле menu использует функцию menu_tree('ИМЯ МЕНЮ'), чтобы рендерить ...
Читать
Август 29, 2022 г.
При обновлении модуля s3fs с ветки 7.x-2.x -> 7.x->3.x друпалу не удаётся найти указанный класс. Все необходимые шаги по апгрейду сделаны, как описано в readme.txt модуля.
Это проблема инициализации библиотеки awssdk в s3fs_libraries_info(). Drupal ...
Читать
Ноябрь 22, 2018 г.
Модуль Config Pages позволяет создавать страницы конфигурации для вашего модуля, всего сайта, или может быть просто одного из разделов сайта. Потом эти значения можно читать из программы и использовать так, как вам требуется. Но API Config Pages не содержит ...
Читать
Апрель 10, 2021 г.
Стандартный шаблон страницы термина таксономии taxonomy-term.tpl.php не позволяет управлять выводом публикаций, он лишь служит как обертка для полей термина.
Единственная настройка CMS, которая влияет на вывод списка - это переменная default_nodes_main, ...
Читать