English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Funktion mysqli_multi_query() führt eine oder mehrere Abfragen an der Datenbank aus. Mehrere Abfragen werden durch Semikolons getrennt.
mysqli_multi_query()Die Funktion akzeptiert einen Zeichenkettenwert, der die Abfrage darstellt, als einen der Parameter und führt sie in der Datenbank aus/Führen Sie die angegebene Abfrage aus.
Führen Sie eine SQL-Anweisung oder mehrere durch Semikolons getrennte SQL-Anweisungen aus.
Um den ersten Resultatset der Ausführungsresultate zu erhalten, verwenden Sie die Funktionen mysqli_use_result() oder mysqli_store_result(). Um die folgenden Resultatsets zu lesen, verwenden Sie die Funktionen mysqli_more_results() und mysqli_next_result().
mysqli_multi_query($con, $query)
Nummer | Parameter und Beschreibung |
---|---|
1 | con(必需) Dies ist ein Objekt, das die Verbindung zum MySQL-Server darstellt. |
2 | query(必需) Dies ist ein Zeichenkettenwert, der die abzuführende Abfrage darstellt. |
3 | mode(optional) Dies ist ein ganzzahliger Wert, der den Resultatmodus darstellt. Sie könnenMYSQLI_USE_RESULT oder MYSQLI_STORE_RESULT an diesen Parameter als Wert übergeben. |
Falls die erste SQL-Anweisung fehlschlägt, wird FALSE zurückgegeben. Bei der Ausführung mehrerer SQL-Anweisungen muss die Funktion mysqli_next_result() zuerst aufgerufen werden, um die Fehlerinformationen der folgenden Anweisungen abzurufen.
Diese Funktion wurde ursprünglich in der PHP-Version5und kann in allen höheren Versionen verwendet werden.
Die folgenden Beispiele demonstrierenmysqli_multi_query()Verwendung der Funktion (prozeduraler Stil)-
<?php //Verbindung herstellen $con = mysqli_connect("localhost", "root", "password", "mydb"); $query = "CREATE TABLE Test(Name VARCHAR(255), Alter INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"; mysqli_multi_query($con, $query); print("Daten hinzugefügt......"); //Verbindung schließen mysqli_close($con); ?>
Ausgabeergebnis
Daten hinzugefügt......
Wenn Sie den Inhalt der Tabelle in der Datenbank beobachten, können Sie die eingefügten Zeilen wie folgt sehen:
mysql> select * from players; +------------+-----------+-------------+ | First_Name | Last_Name | Country | +------------+-----------+-------------+ | Shikhar | Dhawan | Indien | | Jonathan | Trott | Südafrika | +------------+-----------+-------------+ 2 Zeilen in der Menge (0.00 sec)
In der objektorientierten Art lautet die Syntax der Funktion$con-> multi_query();。Nachfolgendes Beispiel zeigt die Funktion in der objektorientierten Art;
<?php $con = new mysqli("localhost", "root", "password", "mydb"); $query = "CREATE TABLE Test(Name VARCHAR(255), Alter INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"; //Datensätze in die Tabelle players einfügen $con->multi_query($query); print("Daten erstellt......"); //Verbindung schließen $res = $con -> close(); ?>
Ausgabeergebnis
Daten hinzugefügt......
Nachstehendes Beispiel erstellt eine Tabelle und verwendetmysqli_multi_query()Funktionen werden nacheinander ausgeführt, um es zu füllen-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_multi_query($con, "CREATE TABLE IF NOT EXISTS my_team(ID INT, Vorname VARCHAR(255), Nachname VARCHAR(255), Geburtsort VARCHAR(255), Land VARCHAR(255))"); print("Tabelle erstellt ..."."\n"); //Datensätze in die Tabelle my_team einfügen mysqli_multi_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_multi_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_multi_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); mysqli_multi_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); print("记录插入 ..."."\n"); //Verbindung schließen mysqli_close($con); ?>
Ausgabeergebnis
Tabelle erstellt ... Einfügen von Datensätzen ...
Angenommen, wir haben bereits eine Tabelle Players in der Datenbank erstellt und gefüllt, wie folgt:-
CREATE TABLE Players (Name VARCHAR(255), Alter INT, Score INT); insert into Players values('Dhavan', 33, 90),('Rohit', 28, 26),('Kohli', 25, 50);
Der folgende Beispiel zeigt, wiemysqli_multi_queryFunktion zur Rückgabe der Ergebnismenge-
<?php //Verbindung herstellen $con = mysqli_connect("localhost", "root", "password", "mydb"); //Durchführung mehrerer Abfragen $query = "SELECT * FROM Players;CREATE TABLE Test (Name VARCHAR(255), Alter INT);insert into Test values('Raju', 25),('Rahman', 30),('Ramani', 22);SELECT * FROM Test"; $res = mysqli_multi_query($con, $query); if ($res) { do { if ($result = mysqli_use_result($con)) { while ($row = mysqli_fetch_row($result)) { print("Name: ".$row[0]."\n"); print("Alter: ".$row[1]."\n"); } mysqli_free_result($result); } if (mysqli_more_results($con)) { print("\n"); } } while (mysqli_next_result($con)); } mysqli_close($con); ?>
Ausgabeergebnis
Name: Dhavan Alter: 33 Name: Rohit Alter: 28 Name: Kohli Alter: 25 Name: Raju Alter: 25 Name: Rahman Alter: 30 Name: Ramani Alter: 22