Rumah > pembangunan bahagian belakang > tutorial php > Mengapa objek mysqli PHP saya ditutup lebih awal, menyebabkan 'objek mysqli sudah ditutup / tidak dapat mengambil ralat mysqli'?

Mengapa objek mysqli PHP saya ditutup lebih awal, menyebabkan 'objek mysqli sudah ditutup / tidak dapat mengambil ralat mysqli'?

Barbara Streisand
Lepaskan: 2024-12-03 00:57:15
asal
323 orang telah melayarinya

Why is my PHP mysqli object closing prematurely, causing

mysqli::query(): objek mysqli sudah ditutup / tidak dapat mengambil ralat mysqli

Kod PHP yang disediakan menggunakan kelas (EventCalendar) yang menguruskan sambungan pangkalan data dan melaksanakan pertanyaan. Walau bagaimanapun, mesej ralat menunjukkan bahawa objek mysqli telah ditutup atau ralat berlaku semasa mengambil ralat mysqli.

Memahami Ralat

Apabila objek mysqli ditutup lebih awal, pertanyaan berikutnya akan gagal dengan ralat "objek mysqli sudah ditutup". Ini boleh berlaku jika objek DBConnect ditutup sebelum semua pertanyaan telah dilaksanakan.

Bahagian kedua ralat, "tidak dapat mengambil ralat mysqli," menunjukkan bahawa skrip cuba mendapatkan semula mesej ralat yang dikaitkan dengan operasi mysqli sebelumnya, tetapi mesej ralat tidak dapat diambil, mungkin disebabkan oleh penutupan sambungan.

Menyelesaikan Isu

Pastikan objek DBConnect tidak ditutup sehingga semua pertanyaan yang diperlukan telah dilaksanakan. Dalam kod yang disediakan, objek DBConnect ditutup dalam kaedah __destruct(). Alihkan penamatan sambungan sebenar ke tempat yang lebih sesuai, seperti selepas semua pertanyaan telah dilaksanakan dan objek tidak diperlukan lagi.

Selain itu, pertimbangkan untuk menyemak status sambungan sebelum melaksanakan pertanyaan untuk mengendalikan kemungkinan masalah sambungan dengan anggun.

Contoh Kod yang disemak

Berikut ialah semakan semula bahagian kod yang menangani kemungkinan isu penutupan:

// Function to add events to Zodiac calendar
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa objek mysqli PHP saya ditutup lebih awal, menyebabkan 'objek mysqli sudah ditutup / tidak dapat mengambil ralat mysqli'?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan