【问题标题】:Drupal / MySQL fetchAllAssoc(); resulting in exceptionDrupal / MySQL fetchAllAssoc();导致异常
【发布时间】:2016-02-29 16:37:18
【问题描述】:

我有一个外部数据库,我试图从 Drupal 页面中访问,我已成功查询数据库并使用 fetchAssoc() 将数据输出到页面,但是这只返回数据库中的第一行。我想将所有行返回到一个数组中进行处理,所以我尝试使用 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() 可以正确打印值。我发现的所有文档似乎都说您传递了一个数据库字段作为键,但我也传递了一个数值但没有成功。

非常感谢您的任何建议,我确定我只是错过了一些愚蠢的事情。

【问题讨论】:

    标签: php mysql drupal drupal-7


    【解决方案1】:

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

    例如使用 var_dump:

    var_dump($sqlresult);
    

    【讨论】:

    • 您说的很对,只是输出格式导致抛出异常。非常感谢@Zaragoli。
    猜你喜欢
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2011-06-08
    • 2017-02-16
    • 2018-11-09
    相关资源
    最近更新 更多