Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Pertanyaan MySQLi Tidak Melemparkan Pengecualian Walaupun dengan `mysqli_report(MYSQLI_REPORT_STRICT)`?

Mengapa Pertanyaan MySQLi Tidak Melemparkan Pengecualian Walaupun dengan `mysqli_report(MYSQLI_REPORT_STRICT)`?

Patricia Arquette
Lepaskan: 2024-12-31 07:24:11
asal
286 orang telah melayarinya

Why Don't MySQLi Queries Throw Exceptions Even with `mysqli_report(MYSQLI_REPORT_STRICT)`?

Pengecualian untuk Ralat Pertanyaan MySQLi

Soalan

Walaupun menetapkan mysqli_report(MYSQLI_REPORT_STRICT), ralat pertanyaan dalam MySQLi tidak membuang pengecualian. mysqli_sql_exception hanya dilemparkan untuk ralat sambungan. Adakah perkara biasa untuk menyemak nilai pulangan mysqli_query() secara manual untuk mengesan kegagalan pertanyaan?

Jawapan

Ya, semakan manual selalunya diperlukan kerana:

  1. mysqli_report(): Memanggil mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); memang membolehkan balingan pengecualian.
  2. Cuba-tangkap: Bertentangan dengan kepercayaan popular, pengecualian tidak boleh digunakan secara berlebihan. Kebanyakan ralat harus dikendalikan secara berpusat oleh pengendali ralat seluruh tapak.

Kod terdahulu:

$result = mysqli_query($DBlink, $SQL);
if($result === false) {
    throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink));
}
Salin selepas log masuk

Sebaliknya, gunakan cuba tangkap dengan berhati-hati untuk ralat yang memerlukan perhatian segera.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQLi Tidak Melemparkan Pengecualian Walaupun dengan `mysqli_report(MYSQLI_REPORT_STRICT)`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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