根据 PDO 结果迭代数组两次
使用 PDO 时,可能需要多次迭代获取的数组。然而,与 MySQL 的 mysql_data_seek() 方法不同,PDO 不提供直接重置数组指针的方法。要实现相同的功能,必须采用替代方法。
解决方案是将获取的结果存储到数组中,然后迭代该数组两次。下面是一个示例:
$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 }
在修改后的代码中:
通过将结果保存到array,保留了对同一数组进行两次迭代(每次都从第 0 行开始)的初衷。此方法为处理 PDO 结果提供了强大且高效的解决方案。
以上是如何迭代 PDO 结果数组两次?的详细内容。更多信息请关注PHP中文网其他相关文章!