Heim >Datenbank >MySQL-Tutorial >Wie kann ich ein PDO-Ergebnisarray zweimal durchlaufen?

Wie kann ich ein PDO-Ergebnisarray zweimal durchlaufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 17:57:13756Durchsuche

How Can I Iterate Through a PDO Result Array Twice?

Zweimaliges Iterieren eines Arrays aus einem PDO-Ergebnis

Bei der Arbeit mit PDO kann es erforderlich sein, ein abgerufenes Array mehrmals zu iterieren. Im Gegensatz zur mysql_data_seek()-Methode von MySQL bietet PDO jedoch keine direkte Möglichkeit, den Array-Zeiger zurückzusetzen. Um die gleiche Funktionalität zu erreichen, muss ein alternativer Ansatz verwendet werden.

Die Lösung besteht darin, die abgerufenen Ergebnisse in einem Array zu speichern und dann zweimal über dieses Array zu iterieren. Hier ist ein Beispiel:

$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
}

In diesem überarbeiteten Code:

  • Die Abfrageergebnisse werden mit fetchAll() in ein Array geholt.
  • Zwei separate foreach-Schleifen werden verwendet, um das Array zweimal zu durchlaufen.

Durch das Speichern der Ergebnisse in einem Array wird die ursprüngliche Absicht von Das zweimalige Durchlaufen desselben Arrays, jedes Mal beginnend mit Zeile Null, bleibt erhalten. Diese Methode bietet eine robuste und effiziente Lösung für die Arbeit mit PDO-Ergebnissen.

Das obige ist der detaillierte Inhalt vonWie kann ich ein PDO-Ergebnisarray zweimal durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn