Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat 'Arahan tidak segerak' dalam Kod PHP MySQLi Saya?

Mengapa Saya Mendapat Ralat 'Arahan tidak segerak' dalam Kod PHP MySQLi Saya?

DDD
DDDasal
2025-01-23 00:57:12223semak imbas

Why Am I Getting the

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!

Kenyataan:
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