Я не могу понять, как добавить предложение IN в свой запрос, используя заполнители.
Я хотел бы, чтобы это было что-то вроде:
$nids = array(1, 2, 3);
$result = db_query('SELECT * FROM {node} WHERE nid IN :nids', array(':nids' => $nids));
Не могу найти документацию по этой простой задаче. Как правильно этого добиться?
node_types = array('node_type_1', 'node_type_2');
Для Drupal 8
Запрос сущности:
Sql Query (выберите), по сути то же самое для других типов запросов.
Для Drupal 7
Смотри ответ Бердира.
Для Drupal 6
Вы можете сделать это так:
В Drupal 6 необходим db_placeholder, который создаст строку, содержащую заполнители, необходимые для данного массива значений. Drupal 7 обрабатывает все это внутренне, как описывает Бердир.
источник
Использование API базы данных в Drupal 7
Вот как вы можете использовать db_select () вместо db_query () для тех же результатов.
источник
Drupal 6 Если ваш массив содержит строки, вы должны сообщить db_placeholder ()
источник
Обновление Drupal 8
Также действует.
источник
db_query
устарела и будет удалена в Drupal 9. На данном этапе это не рекомендуется. Вы также не должны использовать базу данных напрямую для запроса данных, связанных с сущностями; для этого есть API