MySQL: Commands Out of Sync Error
Isu:
Pengguna menghadapi "Arahan tidak segerak; anda tidak boleh menjalankan perintah ini sekarang" ralat semasa cuba melaksanakan berbilang pertanyaan MySQL menggunakan mysqli secara berurutan.
Punca:
Ralat ini berlaku kerana mysqli menggunakan pertanyaan tidak buffer secara lalai untuk pernyataan yang disediakan. Ini bermakna hasil pertanyaan pertama mesti diambil sebelum melaksanakan pertanyaan seterusnya.
Penyelesaian:
Terdapat dua cara untuk menyelesaikan isu ini:
Kaedah 1: Mengambil Keputusan ke dalam Tatasusunan
Ambil keputusan pertanyaan pertama ke dalam tatasusunan dan gelung melaluinya. Pendekatan ini melibatkan langkah berikut:
Kaedah 2: Pertanyaan Penimbalan
Konfigurasikan mysqli kepada penimbal pertanyaan menggunakan mysqli_stmt_store_result(). Pendekatan ini melibatkan langkah berikut:
Pelaksanaan:
Sebagai contoh, untuk melaksanakan Kaedah 2 dalam kod yang anda sediakan:
... $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results ... } ...
Tambahan Nota:
Atas ialah kandungan terperinci Ralat `Commands Out of Sync` MySQL: Bagaimana untuk Menyelesaikan Isu Pertanyaan Berjujukan dengan mysqli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!