Rumah >pangkalan data >tutorial mysql >Mengapa Ralat MySQL 2014 Berlaku dengan Pertanyaan Tidak Dibuffer dan Bagaimana Ia Boleh Diselesaikan?
Mengapa MySQL Ralat 2014 Berlaku dengan Pertanyaan Tidak Dibuffer?
Ralat MySQL 2014, "Tidak boleh melaksanakan pertanyaan semasa pertanyaan tidak buffer lain aktif," timbul apabila pertanyaan dilaksanakan manakala pertanyaan lain yang tidak ditimbal masih ada kemajuan. Pertanyaan yang tidak ditimbal tidak mengambil sepenuhnya semua hasil daripada pelayan, yang membawa kepada ralat.
Mengapa Ini Diwujudkan Hanya dengan PDO::ATTR_EMULATE_PREPARES=false?
Apabila PDO ::ATTR_EMULATE_PREPARES=benar, PDO meniru kenyataan yang disediakan. Di bawah tetapan ini, semua keputusan diambil secara tersirat, menghalang ralat daripada berlaku. Walau bagaimanapun, dengan PDO::ATTR_EMULATE_PREPARES=false, PDO menggunakan pernyataan yang disediakan asli, yang memerlukan pengambilan eksplisit.
Mengapa Beberapa Versi PHP Berperilaku Berbeza?
Versi PHP yang berbeza boleh mengendalikan pertanyaan tidak buffer secara berbeza. Versi yang lebih lama mungkin telah mengambil semua hasil secara automatik, manakala versi yang lebih baharu mematuhi protokol MySQL dengan lebih ketat, mengakibatkan ralat apabila pertanyaan tidak buffer digunakan.
Cara Menyelesaikan Ralat
Untuk menyelesaikan ralat, terdapat beberapa pilihan:
Pengesyoran
Secara amnya disyorkan untuk menggunakan pertanyaan penimbal untuk set hasil kecil atau apabila adalah penting untuk mengakses hasil secara berurutan. Untuk set hasil yang besar, fetchAll() boleh digunakan untuk memuatkan semua hasil ke dalam memori dengan penuh semangat. closeCursor() harus digunakan dengan berhati-hati untuk mengelakkan kursor ditutup sebelum waktunya dan kemungkinan kehilangan hasil.
Selain itu, adalah dinasihatkan untuk menggunakan pemacu mysqlnd untuk meningkatkan prestasi dan keserasian dengan PHP.
Atas ialah kandungan terperinci Mengapa Ralat MySQL 2014 Berlaku dengan Pertanyaan Tidak Dibuffer dan Bagaimana Ia Boleh Diselesaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!