Wiederholung der PDO-Abrufergebnisse von Anfang an
In der PDO-Erweiterung von PHP kann es zu Herausforderungen kommen, wenn Sie versuchen, ein abgerufenes Array mehrmals zu durchlaufen , jeweils beginnend in der ersten Reihe. Im Gegensatz zur mysql_data_seek-Methode von MySQL fehlt PDO ein direktes Äquivalent zum manuellen Zurücksetzen des Array-Zeigers.
Um dies zu umgehen, können Sie einen alternativen Ansatz nutzen, indem Sie die Ergebnisse in einem Array speichern. Hier ist ein modifizierter Codeausschnitt, der dies demonstriert:
<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>
Durch das Speichern der Ergebnisse in $rows erstellen Sie effektiv eine Momentaufnahme des gesamten Ergebnissatzes. Dadurch können Sie das Array mehrmals durchlaufen und sicherstellen, dass jede Iteration in der ersten Zeile beginnt. Dieser Ansatz bietet eine größere Vielseitigkeit und macht eine manuelle Zeigermanipulation überflüssig, sodass er für eine Vielzahl von Anwendungsfällen geeignet ist.
Das obige ist der detaillierte Inhalt vonWie kann man PDO-Abrufergebnisse mehrmals von Anfang an durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!