Ralat "Commands Out of Sync" dalam Kod PHP dengan Pertanyaan MySQL
Apabila melaksanakan skrip PHP yang melibatkan berbilang pertanyaan MySQL menggunakan mysqli, ralat boleh berlaku: "Arahan tidak segerak; anda tidak boleh menjalankan arahan ini sekarang." Isu ini timbul apabila pertanyaan berikutnya dicuba sebelum mengambil dan memproses keputusan daripada pertanyaan sebelumnya atau mengosongkan cache pelayan MySQL bagi arahan pertanyaan.
Kod yang disediakan dalam soalan melaksanakan dua pertanyaan: satu untuk mengira rekod dan satu lagi untuk mendapatkan semula baris berdasarkan rentetan carian. Walau bagaimanapun, sebelum keputusan pertanyaan pertama diambil, pertanyaan kedua dilaksanakan. Ini mencetuskan ralat "tidak segerak".
Punca Ralat
Penyelesaian Kemungkinan
Contoh
Berikut ialah contoh penimbal hasil pertanyaan pertama menggunakan $stmt->store_result():
<?php $con = mysqli_connect("localhost", "user", "password", "db"); $brand ="o"; $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; $con->query("SET NAMES 'utf8'"); if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; }
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Arahan Tidak Segerak' dalam PHP dengan Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!