Rumah > pangkalan data > tutorial mysql > Bolehkah MySQLi Menyediakan Berbilang Pertanyaan dalam Satu Kenyataan?

Bolehkah MySQLi Menyediakan Berbilang Pertanyaan dalam Satu Kenyataan?

Barbara Streisand
Lepaskan: 2024-10-29 02:41:30
asal
460 orang telah melayarinya

Can MySQLi Prepare Multiple Queries in a Single Statement?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan