Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Mendapat Ralat MySQL 2014: \'Tidak Dapat Melaksanakan Pertanyaan dengan Pertanyaan Tanpa Penimbalan Aktif\'?

Mengapa Saya Mendapat Ralat MySQL 2014: \'Tidak Dapat Melaksanakan Pertanyaan dengan Pertanyaan Tanpa Penimbalan Aktif\'?

DDD
Lepaskan: 2024-11-19 06:26:02
asal
684 orang telah melayarinya

Why Am I Getting MySQL Error 2014:

Punca Ralat MySQL 2014: Tidak Dapat Melaksanakan Pertanyaan dengan Pertanyaan Tidak Dibuffer Aktif

Ralat ini timbul apabila cuba melaksanakan berbilang pertanyaan tanpa menimbal yang pertama pertanyaan. Protokol klien MySQL melarang melaksanakan dua pertanyaan serentak.

Butiran Ralat

  • Punca: Pertanyaan yang tidak ditimbal membiarkan baris pertanyaan sebelumnya tidak diambil, menghalang pertanyaan berikutnya daripada melaksanakan.
  • Simptom: MySQL mengembalikan ralat 2014, menyatakan bahawa pertanyaan tidak boleh dilaksanakan apabila pertanyaan yang tidak ditimbal aktif.

Penyelesaian

  • Gunakan Pertanyaan Buffered: Secara lalai, PDO meniru kenyataan yang disediakan, menghasilkan pertanyaan yang tidak ditimbal. Tetapkan PDO::ATTR_EMULATE_PREPARES=false untuk mendayakan pertanyaan penimbal.
  • Gunakan PDOStatement::fetchAll(): Mengambil semua hasil pertanyaan pertama secara tersirat menimbalnya, membenarkannya pertanyaan seterusnya kepada laksanakan.
  • CloseCursor(): Menutup kursor pertanyaan secara manual membebaskan sumber pada pelayan dan membenarkan pertanyaan seterusnya dilaksanakan. Walau bagaimanapun, ia hanya boleh digunakan apabila semua baris yang diperlukan telah diambil.

Pertimbangan Tambahan

  • Tutup kursor dengan segera untuk mengelakkan potensi masalah penggunaan memori .
  • Gunakan parameter bernama dan bukannya parameter kedudukan untuk kemudahan penggunaan dengan PDO.
  • Tukar ke perpustakaan mysqlnd untuk prestasi dan fleksibiliti yang lebih baik.

Ingat, pelaksanaan pertanyaan yang betul dan teknik pengurusan sumber adalah penting untuk mengelakkan ralat ini dan memastikan operasi pangkalan data yang cekap.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 2014: \'Tidak Dapat Melaksanakan Pertanyaan dengan Pertanyaan Tanpa Penimbalan Aktif\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan