IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > php >

Cannot use object of type PDOStatement as array in 解决办法

2014-11-22 12:51 来源: IT技术学习网原创 阅读:

今天在使用pdo的时候,出现一个php报错如下

Fatal error: Cannot use object of type PDOStatement as array in ...

源代码为:

$result=$db->query("SELECT 标题  FROM Content;");
echo $result[3][标题];

报错原因:

$db->query("SELECT 标题  FROM Content;");的返回结果是pdostatement,不是array。

解决办法:使用fetchAll(PDO::FETCH_ASSOC)方法,得到pdostatement的结果的数组。

$result=$db->query("SELECT 标题  FROM Content;");
$resultarray = $result->fetchAll(PDO::FETCH_ASSOC);//取得所有行的array
echo $resultarray[3][标题];  //运行正确,问题解决

疑问:为什么用foreach语句,得到的$row,直接就是array了,而不是pdostatement。

foreach ($db->query("SELECT 标题 FROM Content;") as $row)
{
    echo $row[0];  //不会报错
}

如有高手知晓,还请留言,感激不尽。

 

 

Cannot use object of type PDOStatement as array in 解决办法
转载需注明出处:IT技术学习网 http://www.itjsxx.com/php/PDOStatement_array.html

评论文章 Cannot use object of type PDOStatement as array in 解决办法
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图