Работа с базой данных в Drupal: Database API и 2 способа написания запросов

Опубликовано: 09.10.2017

видео Работа с базой данных в Drupal: Database API и 2 способа написания запросов

On the Run from the CIA: The Experiences of a Central Intelligence Agency Case Officer

Писать запросы к базе данных, используя штатные средства языка PHP, когда вы программируете на Drupal, считается очень плохим / дурным тоном (по крайней мере в подавляющем большинстве случаев). Ведь у него есть сносный Database API. Далее я приведу два абстрактных варианта написания SQL запросов с учетом этого факта: в стиле D6 и в стиле D7 - последней мажорной версии системы на тек. время.


Работа с Drupal API.

SQL запрос:

SELECT `uid`, `hostname` FROM sessions

Т.е. из таблички sessions берем значения с двух полей - uid и hostname.

D7 (почти, как в шестерке):

$first = db_select('SELECT uid, hostname FROM {sessions}');

D7:

$second = db_select('sessions', 's'); $second->fields('s', array('uid', 'hostname')); $second = $second->execute(); // или (но не всегда так можно писать): $three = db_select('sessions', 's')     ->fields('s', array('uid', 'hostname'))     ->execute();

Как видим первый вариант более прозрачен для понимания, т.к. визуально мало чем отличается от сырого запроса, но с т.з. "правильного" кода, его использовать не рекомендуется.

P.S. Чтобы описание не растянулось на несколько десятков строк "полотенца", я привел сниппеты для простейшего query. Читайте api.drupal.org.

rss