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
Freigeben: 2024-11-20 04:11:02
Original
973 Leute haben es durchsucht

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);
Nach dem Login kopieren

Dieser Code gibt nur das Ergebnis der ersten Abfrage zurück, nämlich:

array(1) {
  [0]=>
  array(1) {
    [1]=>
    string(1) "1"
  }
}
Nach dem Login kopieren

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));
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage