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
Lepaskan: 2025-01-23 00:57:12
asal
190 orang telah melayarinya

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

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

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan