Meningkatkan Pengendalian Ralat dengan Pengecualian MySQLi
Dalam percubaan untuk memudahkan pengendalian ralat, anda menghadapi kesukaran untuk menukar ralat pertanyaan MySQLi kepada pengecualian .
Masalah Penerangan:
Walaupun menggunakan mysqli_report(MYSQLI_REPORT_STRICT) bersama-sama dengan fungsi MySQLi prosedur dalam kelas pembalut tersuai, kegagalan pertanyaan masih menyebabkan amaran mahupun pengecualian tidak dibangkitkan, memerlukan semakan nilai pulangan manual untuk mysqli_query().
Jawapan:
Untuk menyelesaikan isu ini dan memaksa MySQLi membuang pengecualian, gunakan baris berikut:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Penjelasan:
gelagat lalai mysqli_report() adalah untuk melaporkan kedua-dua amaran dan kesilapan. Walau bagaimanapun, dengan menetapkan bendera MYSQLI_REPORT_ERROR, MySQLi diarahkan untuk melaporkan ralat sahaja, yang sejajar dengan gelagat pengecualian melontar yang diingini.
Nota Penting:
Elakkan membungkus setiap pertanyaan dalam blok cuba-tangkap, kerana ia dianggap sebagai amalan terbaik untuk menggunakan pengendali ralat seluruh tapak untuk mengurus sebahagian besar ralat dan bukannya mengendalikannya di lokasi tertentu.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQLi Saya Tidak Membuang Pengecualian, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!