Heim >Datenbank >MySQL-Tutorial >Wie setze ich den Array-Zeiger in PDO-Ergebnissätzen für mehrere Iterationen zurück?

Wie setze ich den Array-Zeiger in PDO-Ergebnissätzen für mehrere Iterationen zurück?

Susan Sarandon
Susan SarandonOriginal
2024-12-01 22:10:12251Durchsuche

How to Reset the Array Pointer in PDO Result Sets for Multiple Iterations?

Zurücksetzen des Array-Zeigers in PDO-Ergebnissen

Beim Übergang von MySQL SELECT-Methoden zu PDO ist das Zurücksetzen des Array-Zeigers für die Iteration durch fetched unerlässlich Arrays mehrmals. Während MySQL mysql_data_seek() anbietet, um dies zu erreichen, erfordert PDO einen anderen Ansatz.

Um den Array-Zeiger in PDO erfolgreich zurückzusetzen, ziehen Sie die folgende Lösung in Betracht:

Rufen Sie zunächst die Ergebnismenge in eine ab Array mit der Methode fetchAll(). Diese Methode ruft alle Zeilen in ein PHP-Array ab. Anschließend können Sie dieses Array mehrmals durchlaufen, um auf die Daten aus jeder Zeile zuzugreifen und sie zu verarbeiten.

Hier ist ein aktualisiertes 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(); // Saving results into an array

// First Iteration
foreach ($rows as $r) {
    // ...
}

// Second Iteration
foreach ($rows as $r) {
    // ...
}

Mit diesem überarbeiteten Ansatz können Sie das Ergebnis durchlaufen mehrmals einstellen, jedes Mal beginnend mit der ersten Reihe.

Das obige ist der detaillierte Inhalt vonWie setze ich den Array-Zeiger in PDO-Ergebnissätzen für mehrere Iterationen zurück?. 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