2011-06-04 90 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 ... 
} 

但是,爲了回答實際問的問題,你會自動連接到默認數據庫。在對站點數據庫運行任何查詢之前,不需要聲明任何類型的數據庫連接。

如果您嘗試連接到另一個問題的外部數據庫。