Heim > Datenbank > MySQL-Tutorial > Wie rufe ich mehrere Ergebnissätze aus einer einzelnen PDO-Abfrage ab?

Wie rufe ich mehrere Ergebnissätze aus einer einzelnen PDO-Abfrage ab?

Patricia Arquette
Freigeben: 2024-11-17 12:06:02
Original
934 Leute haben es durchsucht

How to Retrieve Multiple Result Sets from a Single PDO Query?

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

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"
  }
}
Nach dem Login kopieren

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

Dies gibt die Ergebnisse der zweiten Abfrage zurück:

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage