Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich einen PDO-Ergebnissatz mehrmals durchlaufen?

Wie kann ich einen PDO-Ergebnissatz mehrmals durchlaufen?

Mary-Kate Olsen
Freigeben: 2024-10-29 14:56:02
Original
973 Leute haben es durchsucht

How to Iterate Through a PDO Result Set Multiple Times?

Wiederholen eines PDO-Ergebnissatzes von Anfang an

Beim Übergang von MySQL-SELECT-Methoden zu PDO-Methoden wird der Array-Zeiger zum Durchlaufen zurückgesetzt Das mehrfache Ergebnissatz kann eine Herausforderung sein. Dies liegt an der unterschiedlichen Art und Weise, wie diese Methoden mit Array-Zeigern umgehen.

Im bereitgestellten Code durchläuft die erste while-Schleife erfolgreich das abgerufene Array, beginnend mit Zeile Null. Allerdings gibt die zweite while-Schleife einen leeren Satz zurück, da die fetch()-Methode von PDO den Array-Zeiger bei jedem Aufruf vorrückt.

Um das gewünschte Verhalten zu erreichen, kann man die Ergebnisse in einem Array speichern und dann durch dieses Array iterieren mehrfach. 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) {
    // second run
}
Nach dem Login kopieren

Durch die Verwendung von fetchAll() werden alle Zeilen aus der Ergebnismenge im $rows-Array gespeichert. Dadurch können Sie das Array mehrmals durchlaufen, ohne den Array-Zeiger manuell zurückzusetzen.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage