【问题标题】:PHP fatal error: Cannot use object of type PDOStatement as array [duplicate]PHP致命错误:不能将PDOStatement类型的对象用作数组[重复]
【发布时间】:2016-05-05 02:06:12
【问题描述】:

我正在尝试使用此代码创建评论页面,但最终出现错误。

代码如下:

 $query = ("SELECT * FROM comment ORDER BY id DESC");

    $getquery = $connection->query($query);

    while($rows = ($getquery))
    {

        $id = $rows['id'];
        $names = $rows['name'];
        $comment = $rows['comment'];

        echo $name . '<br/>' . $comment . '<br/>' . '<br/>' ;
    }

这是错误:

PHP 致命错误:未捕获错误:无法使用 PDOStatement 类型的对象作为 E:\utsdata\2T\2107982859\comment.php:61 中的数组

第 61 行是:$id = $rows['id'];

【问题讨论】:

标签: php html mysql pdo


【解决方案1】:

1) 改变

$getquery = $connection->query($query);

$getquery = $connection->prepare($query);

2) 改变

 while($rows = ($getquery))

while ($rows = $getquery->fetch(PDO::FETCH_BOTH)) {

3) 添加$getquery-&gt;execute();

更新代码

$query = ("SELECT * FROM comment ORDER BY id DESC");

$getquery = $connection->prepare($query);
$getquery->execute();
while($result = $getquery->fetch(PDO::FETCH_BOTH);)
{

    $id = $rows['id'];
    $names = $rows['name'];
    $comment = $rows['comment'];

    echo $name . '<br/>' . $comment . '<br/>' . '<br/>' ;
}

【讨论】:

  • OP 为什么要进行这些更改? 好的答案将始终解释所做的事情以及为什么以这种方式完成,不仅是为了 OP,也是为了 SO 的未来访问者。跨度>
  • 现在也坏了。查询刚刚准备好,但从未执行。所以不会返回任何行。 (除了愚蠢地坚持 -&gt;fetch 而不是使用 PDO 迭代器。)
  • 我更新了我的代码。请参阅@mario。
猜你喜欢
  • 2019-07-04
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多