Ausführen mehrerer Abfragen mit PDO
In PHP Version 5.3 wurde der PDO_MYSQL-Treiber durch PDO_MYSQLND ersetzt, wodurch die Unterstützung für mehrere Abfragen eingeführt wurde. Es kann jedoch verwirrend sein, aus diesen Abfragen mehrere Ergebnismengen zu erhalten.
Herausforderung:
Das Ausführen mehrerer SELECT-Abfragen mit der query()-Methode von PDO_MYSQLND gibt nur die erste Ergebnismenge zurück. Zum Beispiel:
$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);
Dieser Code gibt nur das Ergebnis der ersten Abfrage zurück, nämlich:
array(1) { [0]=> array(1) { [1]=> string(1) "1" } }
Lösung:
Um nachfolgende Ergebnismengen abzurufen, müssen Sie die Methode PDOStatement::nextRowset() verwenden.
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
Dies wird Gibt das Ergebnis der zweiten Abfrage zurück.
Implementierung:
Diese Implementierung mag etwas eigenartig erscheinen, da es praktischer wäre, wenn mehrere Abfragen alle Ergebnisse unter einem Array zurückgeben würden . Dieses Design ermöglicht jedoch das Abrufen jedes Ergebnissatzes mit unterschiedlichen Abrufstilen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PDO_MYSQLND mehrere Ergebnismengen aus mehreren Abfragen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!