如何从Drupal 7模块连接到数据库?

时间:2011-06-04 16:35:25

标签: drupal drupal-modules drupal-7

我想从Drupal 7模块连接到数据库。目前我只有我想要运行的查询:

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

我无法弄清楚如何建立与默认数据库的连接。

任何帮助?

2 个答案:

答案 0 :(得分:2)

在Drupal7中有一个名为db_query()的函数。您可以使用该功能来运行查询。 您可以在syntex下面使用

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

$ result将是stdClass对象,因此您可以在foreach循环中使用它。

答案 1 :(得分:1)

op的示例代码的唯一问题是滥用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运行任何类型的查询之前,无需声明任何类型的DB连接。

如果您尝试连接到另一个问题的外部数据库。