Drupal / MySQL fetchAllAssoc();导致异常

Drupal / MySQL fetchAllAssoc(); resulting in exception

我有一个外部数据库,我正尝试从 Drupal 页面访问该数据库,我已成功查询数据库并使用 fetchAssoc() 将数据输出到页面,但这只是 return 的第一个数据库中的行。我想将所有行 return 放入一个数组中进行处理,所以我尝试使用 fetchAllAssoc(),但这会导致异常。数据库有以下 SQL 个字段:

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() 指定的关键字段 'id',因为 fetchAssoc() 打印值正确。我找到的所有文档似乎都说您传递了一个数据库字段作为键,但我也传递了一个数值但没有成功。

非常感谢您的任何建议,我确定我只是遗漏了一些愚蠢的东西。

我认为它应该以这种方式工作,但是在 foreach 中,您想将 $sqlresult 变量打印为字符串,但它是一个对象(它会导致错误)。
printf函数需要一个字符串作为第一个参数,参见:
http://php.net/manual/en/function.printf.php

例如使用var_dump代替:

var_dump($sqlresult);