Home >Backend Development >PHP Tutorial >How to Iterate Through PDO Fetch Results Multiple Times Starting from the Beginning?

How to Iterate Through PDO Fetch Results Multiple Times Starting from the Beginning?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 03:06:03535browse

How to Iterate Through PDO Fetch Results Multiple Times Starting from the Beginning?

Reiterating PDO Fetch Results from the Beginning

In PHP's PDO extension, you may encounter challenges when attempting to iterate through a fetched array multiple times, starting from the first row each time. Unlike MySQL's mysql_data_seek method, PDO lacks a direct equivalent to reset the array pointer manually.

To overcome this, you can leverage an alternative approach by storing the results in an array. Here's a modified code snippet demonstrating this:

<code class="php"><?php
$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();

// Store the results in an array
$rows = $stmt->fetchAll();

// First iteration
foreach ($rows as $r) {
    // Perform desired actions starting from the first row
}

// Second iteration
foreach ($rows as $r) {
    // Perform additional actions starting from the first row again
}
?></code>

By storing the results in $rows, you effectively create a snapshot of the complete result set. This allows you to iterate through the array multiple times, ensuring that each iteration starts from the first row. This approach provides greater versatility and eliminates the need for manual pointer manipulation, making it suitable for a variety of use cases.

The above is the detailed content of How to Iterate Through PDO Fetch Results Multiple Times Starting from the Beginning?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn