PHP/PDO:返回没有foreach的查询行?
我对此感到困惑,我运行了一个查询,如PHP/PDO:返回没有foreach的查询行?,php,mysql,pdo,Php,Mysql,Pdo,我对此感到困惑,我运行了一个查询,如 foreach($dbh->query("SELECT * FROM ...") as $row) { ...do something with row() 但是当我使用var_dump$dbh时,它是一个PDOstatement对象 这就引出了两个问题: foreach如何将对象分解为单独的行 如何将所有行存储在一个数组中,比如$arr=$dbh->query(…)?这不起作用,因为它仍然是一个对象 当然,我可以在foreach下运行,并
foreach($dbh->query("SELECT * FROM ...") as $row) {
...do something with row()
但是当我使用var_dump$dbh
时,它是一个PDOstatement对象
这就引出了两个问题:
- foreach如何将对象分解为单独的行
- 如何将所有行存储在一个数组中,比如$arr=$dbh->query(…)?这不起作用,因为它仍然是一个对象
资源
PHP有一些有趣的接口,可以将对象作为数组处理。在这种情况下,PDOStatement
类实现了Traversable
,这允许对其使用foreach
。看这里
要在一个数组中获得所有结果,请查看。在将来,如果遇到问题,请考虑在PHP.NET上检查PHP文档。里面有很多例子和有用的用户评论
否,$arr[]=$row代码>并不愚蠢。这是正常的,有序的方式。PDO有一个现成的helper函数可以立即执行,但您也可以自己创建相同的函数。没什么大不了的。