Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Segerak' dalam Pertanyaan MySQL PHP?

Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Segerak' dalam Pertanyaan MySQL PHP?

Susan Sarandon
Lepaskan: 2024-12-19 10:25:10
asal
450 orang telah melayarinya

How to Fix

Arahan Tidak Segerak: Menyelesaikan Isu dalam PHP

Apabila bekerja dengan berbilang pertanyaan MySQL dalam PHP menggunakan mysqli, anda mungkin menghadapi ralat : "Arahan tidak segerak; anda tidak boleh menjalankan arahan ini sekarang." Ralat ini timbul disebabkan oleh penggunaan pertanyaan tidak buffer, yang bermaksud bahawa hasil pertanyaan mesti diproses secara berurutan sebelum pertanyaan seterusnya boleh dilaksanakan.

Dalam coretan kod yang disediakan, anda melaksanakan pertanyaan untuk menentukan bilangan rekod ($numRecords) dalam jadual berdasarkan klausa SUKA. Walau bagaimanapun, pembolehubah $data masih merujuk hasil pertanyaan sebelumnya, yang tidak segerak.

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

  1. Ambil Tatasusunan Hasil:

Selepas melaksanakan $numRecords->execute(), ambil keputusan ke dalam tatasusunan menggunakan $data = $numRecords->get_result(). Ini akan menyimpan hasil pertanyaan dan membolehkan anda terus melaksanakan pertanyaan lain.

  1. Gunakan store_result():

Gunakan store_result(): ) kaedah pada objek pernyataan selepas pelaksanaan ($numRecords->store_result()). Ini akan mengarahkan mysqli untuk menimbal hasil, membolehkan anda melaksanakan pertanyaan berikutnya tanpa ralat tidak segerak.

Berikut ialah coretan kod yang diubah suai menggunakan kaedah get_result():

$con->query("SET NAMES 'utf8'");
$brand ="o";
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    
    // Fetch the result array into $data
    $data = $numRecords->get_result();
    $rowcount = mysqli_num_rows($data);
    $rows = getRowsByArticleSearch("test", "Auctions", " ");
    $last = ceil($rowcount/$page_rows);
} else {
    print_r($con->error);
}
Salin selepas log masuk

Nota bahawa ralat arahan tidak segerak juga boleh berlaku jika anda melaksanakan bukan pertanyaan (cth., INSERT, UPDATE) dan kemudian cuba laksanakan pertanyaan yang mendapatkan semula data daripada jadual yang sama tanpa menutup sambungan terlebih dahulu atau mengambil keputusan bukan pertanyaan. Pastikan anda telah menutup sambungan atau mengendalikan hasil pertanyaan sebelumnya sebelum melaksanakan pertanyaan berikutnya.

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan