Punca Ralat MySQL 2014: Tidak Dapat Melaksanakan Pertanyaan Semasa Pertanyaan Tidak Dibuffer Lain Aktif
Protokol klien MySQL mengehadkan melaksanakan berbilang hasil secara serentak apabila daripada pertanyaan sebelumnya belum diperoleh sepenuhnya. Had ini timbul disebabkan oleh sifat tidak buffer beberapa pertanyaan, di mana baris diambil secara berperingkat dan bukannya dicache serta-merta seperti dalam pertanyaan penimbal.
Apabila melaksanakan pertanyaan tidak buffer dan cuba melaksanakan pertanyaan lain sebelum mendapatkan semula semua baris daripada pertama, MySQL mengembalikan ralat "Tidak dapat melaksanakan pertanyaan manakala pertanyaan tidak buffer lain adalah aktif."
Penyata Disediakan Ditiru
PDO::ATTR_EMULATE_PREPARES menentukan sama ada pernyataan yang disediakan dicontohi atau dilaksanakan sebagai penyata MySQL asli yang disediakan. Jika ditetapkan kepada palsu, menggunakan pertanyaan PHP tidak buffer boleh mencetuskan ralat 2014. Ini kerana mekanisme caching dalaman PHP untuk hasil pertanyaan tidak mengendalikan pertanyaan tidak buffer dengan betul.
Menyelesaikan Ralat
Terdapat beberapa cara untuk menyelesaikan masalah ini ralat:
Amalan Terbaik
Untuk mengelak daripada menghadapi ralat ini, anda disyorkan untuk:
Atas ialah kandungan terperinci Mengapa MySQL Mengembalikan Ralat 2014: 'Tidak Dapat Melaksanakan Pertanyaan Semasa Pertanyaan Tidak Dibuffer Lain Aktif'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!