Arahan Tidak Segerak: Menyelidiki Punca dan Penyelesaian
Apabila cuba melaksanakan kod PHP yang menggunakan pertanyaan MySQL melalui mysqli, seseorang boleh menghadapi ralat, "Arahan tidak segerak; anda tidak boleh menjalankan arahan ini sekarang." Ralat ini menunjukkan percanggahan antara pelaksanaan berurutan pertanyaan pangkalan data.
Kod PHP yang disediakan mempamerkan isu ini disebabkan penggunaan pertanyaan tidak buffer oleh mysqli untuk pernyataan yang disediakan. Ini bermakna hanya hasil pertanyaan yang dilaksanakan terbaharu sahaja tersedia pada bila-bila masa.
Untuk menyelesaikan ralat ini, dua pendekatan boleh diambil:
Dalam kod yang disediakan, $stmt->store_result() boleh digunakan selepas pertanyaan pertama untuk menimbal keputusannya:
if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; ... }
Dengan melaksanakan salah satu daripada penyelesaian ini, arahan tidak akan disegerakkan lagi dan kod PHP harus laksanakan dengan jayanya.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Arahan Tidak Segerak' dalam Kod MySQLi PHP Saya, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!