您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PHP PDO与foreach和fetch

PHP PDO与foreach和fetch

一个PDOStatement(你有$users)是向前光标。这意味着,一旦消耗(第一次foreach迭代),就不会后退到结果集的开头。

您可以在之后关闭光标,foreach然后再次执行该语句:

$users       = $dbh->query($sql);
foreach ($users as $row) {
    print $row["name"] . "-" . $row["sex"] ."<br/>";
}

$users->execute();

foreach ($users as $row) {
    print $row["name"] . "-" . $row["sex"] ."<br/>";
}

或者您可以使用量身定制CachingIterator的Fullcache进行缓存:

$users       = $dbh->query($sql);

$usersCached = new CachedPDOStatement($users);

foreach ($usersCached as $row) {
    print $row["name"] . "-" . $row["sex"] ."<br/>";
}
foreach ($usersCached as $row) {
    print $row["name"] . "-" . $row["sex"] ."<br/>";
}

您会发现本CachedPDOStatement课程的要点。缓存迭代器可能比将结果集存储到数组中更为理智,因为它仍提供PDOStatement已包装对象的所有属性方法

php 2022/1/1 18:15:47 有369人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶