Rumah >pangkalan data >tutorial mysql >Bolehkah MySQLi Menyediakan Berbilang Pertanyaan dalam Satu Kenyataan?
Bolehkah MySQLi Menyediakan Berbilang Pertanyaan dalam Satu Penyata?
Walaupun tidak mungkin untuk menyediakan berbilang pertanyaan dengan satu pernyataan MySQLi, penyelesaiannya wujud untuk mencapai kefungsian yang serupa.
Penyediaan Berbilang Pernyataan
Percubaan untuk menyediakan berbilang pertanyaan dalam satu pernyataan MySQLi akan mengakibatkan ralat. Sebagai alternatif, anda boleh mencipta berbilang pernyataan yang disediakan:
<code class="php">$stmt = $mysqli->prepare("SELECT * FROM users"); $stmt2 = $mysqli->prepare("INSERT INTO orders (user_id) VALUES (?)");</code>
Menggabungkan Penyata Disediakan
Untuk melaksanakan berbilang pertanyaan dengan cara terkawal, anda boleh menggabungkan pernyataan yang disediakan menggunakan transaksi:
<code class="php">mysqli->begin_transaction(); $stmt->execute(); $stmt2->execute(); mysqli->commit(); // Execute transaction</code>
Ini memastikan kedua-dua pertanyaan berjaya dilaksanakan atau tidak sama sekali.
Pengendalian Ralat
Jika mana-mana pernyataan yang disediakan gagal semasa pelaksanaan, transaksi akan berbalik dan tiada perubahan akan dibuat. Adalah penting untuk menyemak ralat selepas melaksanakan pernyataan yang disediakan:
<code class="php">if ($stmt->errno != 0) { echo "Error: " . $stmt->error; }</code>
Petua Tambahan
Ralat "panggilan kepada fungsi ahli pada bukan objek" biasanya berlaku apabila kaedah prepare() gagal. Pastikan rentetan pertanyaan anda betul dari segi sintaksis sebelum meneruskan.
Atas ialah kandungan terperinci Bolehkah MySQLi Menyediakan Berbilang Pertanyaan dalam Satu Kenyataan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!