首页 >数据库 >mysql教程 >如何迭代 PDO 结果数组两次?

如何迭代 PDO 结果数组两次?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-28 17:57:13729浏览

How Can I Iterate Through a PDO Result Array Twice?

根据 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
}

在修改后的代码中:

  • 使用 fetchAll() 将查询结果提取到数组中。
  • 两个单独的 foreach 循环用于迭代数组两次。

通过将结果保存到array,保留了对同一数组进行两次迭代(每次都从第 0 行开始)的初衷。此方法为处理 PDO 结果提供了强大且高效的解决方案。

以上是如何迭代 PDO 结果数组两次?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn