Heim >Datenbank >MySQL-Tutorial >Können mehrere SQL-Abfragen in einer einzigen PHP-Anweisung ausgeführt werden?

Können mehrere SQL-Abfragen in einer einzigen PHP-Anweisung ausgeführt werden?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 06:41:10244Durchsuche

Can Multiple SQL Queries Be Executed in a Single PHP Statement?

Mehrere SQL-Abfragen in einer einzigen Anweisung mit PHP ausführen

Frage:

Kann mehrere SQL-Abfragen werden in einer einzigen Anweisung zusammengefasst PHP?

Kontext:

Die Frage bezieht sich auf ein Szenario, in dem mehrere SQL-Abfragen separat ausgeführt werden:

$query = "DELETE FROM aktywne_kody WHERE kodsms ='$kodSMSgracza' AND typkodu ='$id'";
mysql_query($query) or die(mysql_error());

$query = "INSERT INTO uzyte_kody (gracz, kodsms, typkodu) VALUES ('$nickGracza', '$kodSMSgracza', '$id')";
mysql_query($query) or die("Błąd MySQL X04");

$query = "INSERT INTO do_odebrania (gracz, itemDATA, itemQTY) VALUES ('$nickGracza', '$itemDATA', '$itemQTY')";
mysql_query($query) or die("Błąd MySQL X05");

Antwort :

Ja, es ist möglich, mehrere SQL-Abfragen in einer einzigen Anweisung in PHP auszuführen, indem ein bestimmter Parameter für verwendet wird mysql_connect().

Übergeben Sie 65536 als fünften Parameter an mysql_connect():

$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");

Sobald dieser Parameter festgelegt ist, können mehrere SQL-Abfragen in einer einzigen Anweisung ausgeführt werden:

mysql_query("
    INSERT INTO table1 (field1,field2) VALUES(1,2);

    INSERT INTO table2 (field3,field4,field5) VALUES(3,4,5);

    DELETE FROM table3 WHERE field6 = 6;

    UPDATE table4 SET field7 = 7 WHERE field8 = 8;

    INSERT INTO table5
       SELECT t6.field11, t6.field12, t7.field13
       FROM table6 t6
       INNER JOIN table7 t7 ON t7.field9 = t6.field10;

    -- etc
");

Es ist wichtig zu beachten, dass bei der Arbeit mit Funktionen wie mysql_fetch_* oder mysql_num_rows oder mysql_affected_rows, nur die erste Anweisung in den mehreren Abfragen wird verarbeitet. Funktionen wie mysql_affected_rows können verwendet werden, um die Anzahl der von der ersten Abfrage eingefügten oder betroffenen Zeilen abzurufen. Allerdings geben Funktionen wie mysql_fetch_* Werte nur für die erste Abfrage zurück und nicht für nachfolgende Abfragen in der Anweisung.

Das obige ist der detaillierte Inhalt vonKönnen mehrere SQL-Abfragen in einer einzigen PHP-Anweisung ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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