Rumah >pangkalan data >tutorial mysql >Bolehkah Berbilang Pertanyaan SQL Dilaksanakan dalam Pernyataan PHP Tunggal?
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!