2011-06-04 62 views
0

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

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

我无法弄清楚是如何建立与缺省数据库的连接。

任何帮助?

+2

不要将您的问题交叉发布到多个网站:http://drupal.stackexchange.com/questions/4650/how-do-i-connect-to-the-database-from-a-module/4653 #4653 – Berdir 2011-06-04 17:27:07

回答

2

在Drupal7中有称为db_query()的函数。您可以使用该功能来运行您的查询。 您可以使用下面了Syntex

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

$结果将是stdClass的对象,所以你可以在foreach循环使用它。

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 ... 
} 

但是,为了回答实际问的问题,你会自动连接到默认数据库。在对站点数据库运行任何查询之前,不需要声明任何类型的数据库连接。

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