2016-02-29 32 views
0

我有一個外部數據庫,我試圖從一個Drupal頁面訪問,我已經成功地查詢數據庫並使用fetchAssoc()向頁面輸出數據,但是這隻返回數據庫中的第一行。我想返回所有行到一個數組進行處理,所以我試圖使用fetchAllAssoc(),但是這會導致異常。該數據庫具有以下SQL字段:Drupal/MySQL fetchAllAssoc();導致異常

id, model, manufacturer, url, date_modified 

我的測試代碼如下:

<?php 
db_set_active('product_db'); 
$query = db_select('product', 'p')->fields('p'); 
$sqlresults = $query->execute()->fetchAllAssoc('id'); 
foreach($sqlresults as $sqlresult) 
{ 
printf($sqlresult); 
} 
db_set_active(); 
?> 

我想,這是關鍵領域的「身份證」,我用fetchAllAssoc指定()這是問題,因爲fetchAssoc()正確輸出值。我發現的所有文檔似乎都說你傳遞了一個數據庫字段作爲關鍵字,但我也傳遞了一個沒有成功的數字值。

非常感謝您的任何建議,我敢肯定我只是錯過了一些愚蠢的東西。

回答

0

我認爲它應該以這種方式工作,但在foreach中希望將$ sqlresult變量作爲字符串打印,但它是一個對象(它會導致錯誤)。
printf函數需要一個字符串作爲第一個參數,請參閱:
http://php.net/manual/en/function.printf.php

使用例如的var_dump代替:

var_dump($sqlresult); 
+0

你說得不錯,這只是拋出導致異常的輸出格式。非常感謝@Zaragoli。 – Sandwich