Ralat Maut: Pengecualian Tidak Ditangkap 'mysqli_sql_exception' dengan Mesej 'Tiada Indeks Digunakan dalam Pertanyaan/Pernyataan Disediakan'
Ralat ini berlaku apabila cuba melaksanakan pertanyaan tanpa indeks digunakan di atas meja yang terlibat. Walaupun MySQL memaparkan amaran yang menunjukkan isu ini, ralat sebenar terletak pada kod PHP itu sendiri disebabkan oleh faktor berikut:
-
Amaran Berlebihan daripada mysqli: MySQL menjana banyak amaran yang selalunya jinak.
-
Melempar Pengecualian untuk Semua Ralat: Tetapan mysqli_report(MYSQLI_REPORT_ALL) PHP mencetuskan pengecualian bukan sahaja untuk ralat tetapi juga untuk amaran.
-
Pengecualian Tidak Ditangkap: Kod PHP gagal mengendalikan pengecualian dengan betul, mengakibatkan ralat maut kerana pengecualian tidak ditangkap adalah maut.
Untuk menyelesaikan isu ini, anda boleh sama ada:
-
Ubah Tetapan mysqli_report: Tukar mysqli_report(...) kepada MYSQLI_REPORT_STRICT atau MYSQLI_REPORT_OFF untuk mengabaikan amaran.
- Use : Laksanakan pengendalian ralat yang betul oleh melampirkan kod anda dalam cubaan{} blok dan menangkap pengecualian menggunakan catch(){} blok.
Dengan menangani isu ini, anda boleh memastikan bahawa ralat PHP dikendalikan dengan betul dan mengelakkan ralat maut yang tidak perlu yang berkaitan dengan indeks penggunaan.
Atas ialah kandungan terperinci Mengapa Kod PHP Saya Membuang Ralat 'mysqli_sql_exception: Tiada Indeks Digunakan' yang Maut?. 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