PDO Multiple Queries: Abrufen mehrerer Ergebnismengen
PHP 5.3 führte die Unterstützung für mehrere Abfragen im PDO_MYSQLND-Treiber ein, sodass Sie mehrere SELECT-Abfragen ausführen können Abfragen in einem einzigen Anruf. Das Abrufen der Ergebnismengen aus diesen Abfragen kann jedoch verwirrend sein.
Betrachten Sie die folgende Abfrage:
$db->query("SELECT 1; SELECT 2;")
Diese Abfrage führt zwei SELECT-Abfragen aus. Anschließend wird die Methode fetchAll(PDO::FETCH_ASSOC) verwendet, um die Ergebnismenge abzurufen. Dies gibt jedoch nur die Ergebnisse der ersten Abfrage zurück:
array(1) { [0] => array(1) { [1] => string(1) "1" } }
Verwenden von PDOStatement::nextRowset
Um die Ergebnisse der zweiten Abfrage abzurufen, müssen Sie Folgendes tun Verwenden Sie die PDOStatement::nextRowset-Methode. Mit dieser Methode können Sie den Anweisungscursor zum nächsten Ergebnissatz bewegen:
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
Dies gibt die Ergebnisse der zweiten Abfrage zurück:
array(1) { [0] => array(1) { [2] => string(1) "2" } }
Mehrere FETCH-Stile
Der Vorteil der Verwendung von PDOStatement::nextRowset besteht darin, dass Sie jede Abfrage mit unterschiedlichem FETCH abrufen können Stile. Zum Beispiel:
$stmt = $db->query("SELECT 1; SELECT 'a';"); $stmt->nextRowset(); $first = $stmt->fetchColumn(); // fetch first column of second query $stmt->nextRowset(); $second = $stmt->fetch(PDO::FETCH_ASSOC); // fetch associative array of third query
Dies gibt Ihnen mehr Flexibilität bei der Arbeit mit mehreren Abfragen.
Das obige ist der detaillierte Inhalt vonWie rufe ich mehrere Ergebnissätze aus einer einzelnen PDO-Abfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!