Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PDO_MYSQLND mehrere Ergebnismengen aus mehreren Abfragen abrufen?

Wie kann ich mit PDO_MYSQLND mehrere Ergebnismengen aus mehreren Abfragen abrufen?

DDD
DDDOriginal
2024-11-20 04:11:02996Durchsuche

How Can I Retrieve Multiple Result Sets from Multiple Queries Using PDO_MYSQLND?

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!

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