In PHP kann die Funktion mySQLI_Multi_query () mehrere SQL -Abfrageanweisungen ausführen, und die Funktion Next_Result () kann uns helfen, diese Abfrageergebnisse einzeln zu verarbeiten. Im Allgemeinen können mehrere Abfragen in derselben Anfrage gesendet werden, und wir können Daten aus dem Ergebnissatz jeder Abfrage durch Funktionen wie MySQLI_Fetch_assoc () , MySQLI_Fetch_Row () usw. abrufen
Bevor wir die Funktion mySQLI_Multi_query () verwenden, müssen wir zunächst eine MySQL -Datenbankverbindung herstellen. Hier ist ein Codebeispiel für eine Verbindung zur Datenbank:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>
Mit der Funktion von MySQLi_Multi_query () können wir mehrere SQL -Abfragestatements gleichzeitig durch Semikolons ( ; ) getrennt ausführen. Hier ist ein Beispiel für die Verwendung von mySQLI_Multi_query (), um mehrere Abfragen auszuführen:
<?php
$sql = "SELECT * FROM users; SELECT * FROM orders;";
if ($conn->multi_query($sql)) {
do {
// Abfragenergebnisse erhalten
if ($result = $conn->store_result()) {
// Iterieren Sie über das Ergebnissatz
while ($row = $result->fetch_assoc()) {
echo "BenutzerID: " . $row['user_id'] . " - Benutzer名: " . $row['username'] . "<br>";
}
$result->free();
}
// Wenn es das nächste Ergebnissatz gibt,Anruf next_result() Wechseln Sie zum nächsten Ergebnissatz
} while ($conn->next_result());
} else {
echo "Abfrage fehlgeschlagen: " . $conn->error;
}
?>
Im obigen Code führt MySQLi_Multi_query () zwei Abfragen aus. In der ersten Abfrage werden alle Benutzer aus der Benutzertabelle und die zweite Abfrage alle Bestelldaten aus der Bestellentabelle erhält. Die Schleife stellt sicher, dass jedes Abfrageergebnis-Set verarbeitet wird.
Die Funktion von MySQLI_Multi_query () gibt mehrere Ergebnissätze zurück, wenn mehrere Abfragen ausgeführt werden. Die Funktion der NEXT_RESULT () -Funktion besteht darin, zum nächsten Ergebnissatz zu wechseln. Jedes Mal, wenn Next_Result () aufgerufen wird, wird prüfen, ob es ein nächstes Ergebnissatz gibt. In diesem Fall gibt die Funktion wahr , sonst falsch .
Im obigen Code verwenden wir eine DO-While- Schleife und Next_Result () , um sicherzustellen, dass alle Abfrageergebnis-Sets durchquert werden können, bis keine Ergebnisse mehr vorhanden sind.
Wenn bei der Ausführung mehrerer Abfragen ein Fehler auftritt, können wir die Fehlermeldung über $ conn-> Fehler erhalten. Im obigen Code geben wir einfach Fehlerinformationen aus, wenn die Abfrage fehlschlägt, und Sie können natürlich auch eine komplexere Fehlerbehandlung auf der Grundlage der tatsächlichen Situation ausführen.
Denken Sie nach der Ausführung aller Abfragen und der Verarbeitung aller Ergebnissätze daran, die Datenbankverbindung zu schließen:
<?php
$conn->close();
?>
Mit den Funktionen von MySQLI_Multi_query () und Next_Result () kann PHP die Ergebnissätze mehrerer SQL -Abfragen problemlos verarbeiten. Dieser Ansatz ist sehr nützlich, um Stapelabfragen und Anwendungen durchzuführen, die mehrere Datenergebnisse erfordern. Ich hoffe, dieser Artikel kann Ihnen helfen, zu verstehen, wie Sie diese beiden Funktionen verwenden, um die Verarbeitung von Multi-Quer-Ergebnissen zu implementieren.
Wenn Sie mehr Hilfe benötigen, können Sie unsere offizielle Dokumentation besuchen: https://gitbox.net/docs/mysql für weitere Informationen.