Pertanyaan:
Dalam MySQL, bolehkah pernyataan yang disediakan melaksanakan berbilang pertanyaan secara serentak? Contohnya:
mysqli->prepare(query1 ...1,2,3 param...; query2...4,5 param...);
Atau sebagai alternatif:
mysqli->prepare(insert into ...1,2,3 param...; insert into...4,5 param...);
Diikuti oleh:
mysqli->bind_param("sssss", 1, 2, 3, 4, 5);
Jawapan:
Tidak, pernyataan yang disediakan dalam MySQL boleh melaksanakan hanya satu pertanyaan. Penyataan berbilang yang disediakan boleh dibuat dalam pembolehubah berasingan:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)"); $stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");
Penyataan ini kemudiannya boleh dilaksanakan kemudian.
Untuk memastikan kedua-dua pertanyaan berjaya dilaksanakan, pertimbangkan untuk menggunakan transaksi pangkalan data, seperti yang dicadangkan oleh Thomas.
Petua:
Jika anda menghadapi ralat "panggilan ke fungsi ahli pada bukan objek" semasa cuba mengikat parameter, ia mungkin menunjukkan ralat dalam pernyataan prepare() itu sendiri.
Atas ialah kandungan terperinci Bolehkah Penyata Disediakan MySQL Tunggal Melaksanakan Berbilang Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!