Menyelesaikan masalah Ralat "Arahan Tidak Segerak" dalam Pertanyaan MySQL PHP
Apabila bekerja dengan PHP dan MySQL, anda mungkin menghadapi ralat "Arahan tidak segerak; anda tidak boleh menjalankan arahan ini sekarang" yang mengecewakan. Ini biasanya berlaku apabila melaksanakan berbilang pertanyaan MySQL secara berturut-turut tanpa pengendalian yang betul terhadap sifat tak segeraknya. Masalah utama terletak pada gelagat lalai tanpa penimbal bagi pertanyaan mysqli
.
Terdapat dua penyelesaian yang berkesan untuk menangani perkara ini:
Proses Keputusan Pertanyaan Pertama: Jalankan pertanyaan awal anda menggunakan $con->query()
dan simpan hasilnya dalam tatasusunan. Operasi seterusnya kemudiannya harus berulang melalui tatasusunan ini, memastikan setiap tindakan dilakukan secara bebas.
Gunakan Penimbalan Pertanyaan: Gunakan kaedah store_result()
dalam pernyataan yang anda sediakan. Ini memaksa mysqli
menimbal hasil pertanyaan, menghalang isu "Arahan tidak segerak" dengan mengelakkan pengambilan baris atas permintaan.
Berikut ialah contoh yang menggambarkan penimbalan pertanyaan:
<code class="language-php">$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ?%"; if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery); $rowcount = $data->num_rows; // Proceed with your application logic }</code>
Ingat bahawa mendayakan penimbalan pertanyaan boleh meningkatkan penggunaan memori apabila berurusan dengan set data yang luas. Pilih kaedah yang paling sesuai dengan volum data dan keperluan aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Segerak' dalam Pertanyaan MySQL PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!