简介
从 MySQL SELECT 方法迁移到 PDO 方法可以介绍挑战。重置数组指针,允许多次迭代获取的数组,就是这样一个挑战。
问题
在 MySQL 中,mysql_data_seek() 函数实现了这一点指针复位。然而,在PDO中,这个功能不可用。如提供的代码中所示,从第 0 行开始的后续循环不会返回任何结果。
解决方案
要解决此问题,请将获取的结果存储在数组中并多次迭代该数组。此修改后的代码演示了解决方案:
$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC'); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // first run } foreach ($rows as $r) { // seconds run }
附加上下文
通过实现此解决方案,您可以有效地重置 PDO 结果中的数组指针,从而允许您从第 0 行开始多次迭代获取的数组。
以上是如何在'fetchAll()”之后重置 PDO 结果中的数组指针?的详细内容。更多信息请关注PHP中文网其他相关文章!