Rumah >pangkalan data >tutorial mysql >Bolehkah Berbilang Pertanyaan SQL Dilaksanakan dalam Pernyataan PHP Tunggal?

Bolehkah Berbilang Pertanyaan SQL Dilaksanakan dalam Pernyataan PHP Tunggal?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 06:41:10244semak imbas

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

Melaksanakan Berbilang Pertanyaan SQL dalam Satu Penyata dengan PHP

Soalan:

Boleh berbilang Pertanyaan SQL disatukan menjadi satu pernyataan dalam PHP?

Konteks:

Soalan berkaitan dengan senario di mana berbilang pertanyaan SQL dilaksanakan secara berasingan:

$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");

Jawapan :

Ya, adalah mungkin untuk melaksanakan berbilang pertanyaan SQL dalam penyataan tunggal dalam PHP menggunakan parameter khusus untuk mysql_connect().

Pass 65536 sebagai parameter kelima kepada 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");

Setelah parameter ini ditetapkan, berbilang pertanyaan SQL boleh dilaksanakan dalam satu pernyataan:

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
");

Adalah penting untuk ambil perhatian bahawa apabila bekerja dengan fungsi seperti mysql_fetch_* atau mysql_num_rows, atau mysql_affected_rows, hanya pernyataan pertama dalam berbilang pertanyaan akan diproses. Fungsi seperti mysql_affected_rows boleh digunakan untuk mendapatkan semula bilangan baris yang dimasukkan atau dipengaruhi oleh pertanyaan pertama. Walau bagaimanapun, fungsi seperti mysql_fetch_* akan mengembalikan nilai hanya untuk pertanyaan pertama dan bukan untuk pertanyaan berikutnya dalam pernyataan.

Atas ialah kandungan terperinci Bolehkah Berbilang Pertanyaan SQL Dilaksanakan dalam Pernyataan PHP Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn