Как подключиться к базе данных из модуля Drupal 7? - PullRequest
0 голосов
/ 04 июня 2011

Я хотел бы подключиться к базе данных из модуля Drupal 7.В настоящее время у меня есть только запрос, который я хочу выполнить:

$query = db_select('z_lists)
->fields('country')
->condition('value', $country, '=')
->execute()
->fetchAssoc();

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

Любая помощь?

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

В Drupal7 есть функция db_query ().Вы можете использовать эту функцию для запуска ваших запросов.Вы можете использовать ниже синтаксис

$var1 = 1;
$result = db_query('SELECT n.title FROM {node} n WHERE n.uid = :uid', array(':uid' => $var1));

$ result будет объектом stdClass, поэтому вы можете использовать его в цикле foreach.

1 голос
/ 12 августа 2013

Единственными проблемами с примером кода оператора было неправильное использование db_select и пропущенная одинарная кавычка.

Динамические запросы: https://drupal.org/node/310075

Было бы хорошо, если бы выпросто использовал это вместо:

$query = db_select('z_lists','z')
    ->fields('z')
    ->condition('value', $country, '=')
    ->execute()
    ->fetchAssoc();

Это вернуло бы все поля для соответствующих записей.

- -> fetchAssoc (), прикованный к концу, гарантировал бы, что вы получили только первоесоответствующая запись.Если вы ожидали несколько результатов, вы бы оставили -> fetchAssoc () и просто просмотрели бы результаты с помощью:

foreach($query as $result){
    ... do something with the data here ...
}

Но чтобы ответить на реальный заданный вопрос, вы автоматически подключаетесь к базе данных по умолчанию.Нет необходимости объявлять какие-либо подключения к БД перед выполнением любого запроса к сайту. Db.

Если вы пытаетесь подключиться к внешней базе данных, это другая проблема.

...