Iterator für wiederholte Array-Durchquerung in PDO zurücksetzen
PDO bietet einen robusteren und objektorientierten Ansatz für Datenbankinteraktionen. Beim Übergang von MySQL SELECT-Methoden zu PDO kann das Zurücksetzen des Array-Zeigers, um die abgerufenen Ergebnisse mehrmals zu durchlaufen, eine Herausforderung sein.
Um dies in MySQL zu erreichen, wird mysql_data_seek($result, 0) verwendet. Bei PDO wird ein einfaches Zurücksetzen des Zeigers nicht unterstützt. Stattdessen müssen Sie einen anderen Ansatz in Betracht ziehen.
Lösung: Speichern und erneutes Schleifen eines Arrays
Die Lösung besteht darin, die abgerufenen Ergebnisse in einem Array zu speichern und dann zweimaliges Durchlaufen des Arrays. Dadurch lösen Sie sich vom PDO-Iterator und erlangen die Kontrolle über den internen Zeiger des Arrays.
So wird es gemacht:
<code class="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(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // First run of the loop } foreach ($rows as $r) { // Second run of the loop }</code>
Dieser Ansatz vermeidet die Komplexität des Zurücksetzens des PDO-Iterators und bietet eine einfachere Lösung für das mehrmalige Durchlaufen abgerufener Ergebnisse.
Das obige ist der detaillierte Inhalt vonWie kann ich PDO-Abrufergebnisse mehrmals durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!