English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundlagenanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

Verwendung und Beispiel von PHP mysqli_multi_query()

PHP MySQLi Referenzhandbuch

Die Funktion mysqli_multi_query() führt eine oder mehrere Abfragen an der Datenbank aus. Mehrere Abfragen werden durch Semikolons getrennt.

Definition und Verwendung

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().

Syntax

mysqli_multi_query($con, $query)

Parameter

NummerParameter 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.

Rückgabewert

 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.

PHP-Version

Diese Funktion wurde ursprünglich in der PHP-Version5und kann in allen höheren Versionen verwendet werden.

Online-Beispiel

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)

Online-Beispiel

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......

Online-Beispiel

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 ...

Online-Beispiel

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

PHP MySQLi Referenzhandbuch