Ralat PHP MySQL: Perintah tidak segerak
Kod PHP anda cuba untuk melaksanakan dua pertanyaan MySQL menggunakan mysqli, tetapi menghadapi ralat "Arahan tidak segerak; anda tidak boleh menjalankan arahan ini sekarang". Ini disebabkan oleh pertanyaan pernyataan yang disediakan mysqli berada dalam mod bukan penimbal secara lalai.
Punca ralat
mysqli melaksanakan pertanyaan dalam mod tidak buffer secara lalai, yang bermaksud set hasil tidak disimpan dalam memori tetapi distrim terus kepada klien. Memandangkan anda menggunakan dua pertanyaan, pertanyaan pertama melaksanakan dan menstrim set hasil. Walau bagaimanapun, sebelum mendapat keputusan daripada pertanyaan pertama, anda cuba melaksanakan pertanyaan kedua. Ini mengakibatkan ralat "perintah tidak segerak" kerana mysqli memerlukan anda mendapatkan hasil pertanyaan pertama sebelum melaksanakan pertanyaan kedua.
Penyelesaian: Pertanyaan Tertimbal
Untuk menyelesaikan masalah ini, anda perlu menimbal pertanyaan. Anda boleh menggunakan kaedah store_result()
bagi objek pernyataan yang disediakan:
<code class="language-php">$numRecords->execute(); $numRecords->store_result();</code>
Dengan menimbal pertanyaan, mysqli menyimpan set hasil pertanyaan pertama dalam ingatan, membolehkan anda mendapatkannya kemudian tanpa bercanggah dengan pelaksanaan pertanyaan kedua.
Nota lain
Dalam kod anda, anda juga cuba melaksanakan pertanyaan yang berbeza dalam gelung foreach:
<code class="language-php">$result = $con->query($recordsQuery); $rows = array(); while($row = $result->fetch_assoc()) { $rows[] = $row; }</code>
Ini sebenarnya tidak perlu kerana anda sudah menyimpan hasil pertanyaan dalam pembolehubah bernama $rows
. Anda boleh menggunakan pembolehubah ini terus dalam gelung untuk mengakses baris yang diambil.
Dengan melaksanakan perubahan ini, anda seharusnya dapat melaksanakan pertanyaan MySQL tanpa menghadapi ralat "perintah tidak segerak".
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Arahan tidak segerak' dalam Kod PHP MySQLi Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!