Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Ralat 'Arahan Tidak Segerak' dalam MySQLi?

Bagaimana untuk Menyelesaikan Ralat 'Arahan Tidak Segerak' dalam MySQLi?

Patricia Arquette
Patricia Arquetteasal
2024-12-02 07:57:09763semak imbas

How to Resolve the

Ralat Perintah Tidak Segerakan dalam MySQLi

Kod anda, yang melibatkan berbilang pertanyaan MySQLi, menghadapi ralat "Perintah tidak segerak". Ralat ini berlaku kerana klien MySQL melarang melaksanakan pertanyaan baharu sementara masih terdapat baris untuk diambil daripada pertanyaan yang sedang dijalankan.

Memahami Isu

Pelanggan MySQL melaksanakan protokol ketat yang memastikan pertanyaan dilaksanakan mengikut urutan. Apabila anda mempunyai pertanyaan bersarang atau prosedur yang mengembalikan berbilang set hasil, protokol menetapkan bahawa anda mengambil semua baris daripada set hasil sebelum melaksanakan pertanyaan seterusnya. Walau bagaimanapun, dalam kes anda, anda cuba melaksanakan pertanyaan baharu sementara masih terdapat baris yang perlu diambil daripada baris sebelumnya.

Penyelesaian

Terdapat dua yang utama pendekatan untuk menyelesaikan isu:

  1. Pra-ambil Keputusan: Gunakan mysqli_store_result() atau mysqli_result::fetch_all() untuk menimbal hasil pertanyaan luar dalam klien MySQL. Ini akan membolehkan anda melaksanakan pertanyaan lanjut tanpa menghadapi ralat.
  2. Kendalikan Berbilang Set Hasil: Jika prosedur tersimpan anda mengembalikan berbilang set hasil, anda perlu menggunakan mysqli_multi_query() dan gelung sehingga mysqli_next_result () menunjukkan tiada lagi hasil. Ini memastikan anda mematuhi protokol MySQL.

Pertimbangan Penyimpanan Data Ganti

Untuk data hierarki, anda mungkin ingin mempertimbangkan untuk menyimpannya secara berbeza untuk memudahkan pertanyaan. Contohnya, anda boleh menggunakan senarai bersebelahan atau model set bersarang.

Nota Tambahan

Dalam CodeIgnitor 3.0.3, anda boleh menyelesaikan ralat "Arahan tidak segerak" dengan mengubah suai kaedah _execute() dalam system/database/drivers/mysqli/mysqli_driver.php.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Arahan Tidak Segerak' dalam MySQLi?. 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
Artikel sebelumnya:. Teka-teki GelongsorArtikel seterusnya:. Teka-teki Gelongsor