Pengendalian Ralat Tersuai dalam PHP Apabila mysqli_connect Gagal
Anda menghadapi mesej ralat semasa cuba menyambung ke pangkalan data menggunakan mysqli_connect. Semasa anda membuat sambungan dengan betul dengan bukti kelayakan yang sah, anda mencari kaedah untuk menyembunyikan mesej ralat daripada pengguna.
Menghapuskan Mesej Ralat
Bermula dengan PHP 8.1, mysqli membuang pengecualian dan bukannya meminta pengendalian ralat manual, menjadikannya tidak perlu untuk mengesan ralat secara manual melalui if (!$conn). Anda harus mengalih keluar kod lapuk ini.
Mengurus Ralat Pangkalan Data
Ralat pangkalan data dinaikkan secara automatik seperti mana-mana fungsi PHP yang lain. Jangan cuba menangkap atau mengendalikan ralat ini secara manual dalam kod anda. Sebaliknya, gunakan pilihan konfigurasi display_errors:
ini_set('display_errors', 0);
Tetapkan ini dalam php.ini atau kod PHP anda untuk menyekat semua mesej ralat.
Menyembunyikan Mesej Ralat daripada Pengguna
Untuk mengelakkan mesej ralat daripada sampai kepada pengguna, anda memerlukan halaman ralat mesra pengguna yang memaparkan mesej generik sebaliknya. Pertimbangkan untuk menggunakan pengendali ralat seperti:
set_exception_handler(function ($e) { error_log($e); http_response_code(500); echo ini_get('display_errors') ? $e : "500 Internal Server Error"; });
Pengendali ini merekodkan ralat dan memaparkan sama ada ralat khusus (semasa pembangunan) atau mesej generik (dalam pengeluaran). Ia menetapkan kod status HTTP 500, yang diperlukan untuk respons ralat pelayan.
Mengendalikan Ralat Sambungan
Jika anda perlu mengendalikan ralat sambungan secara khusus, gunakan percubaan. .catch block dengan kod pengendalian ralat tersuai. Walau bagaimanapun, pastikan ini berasingan daripada kod sambungan biasa anda.
Menyembunyikan Bukti Kelayakan Sambungan
PHP 8.2 dan ke atas menghalang kata laluan pangkalan data daripada muncul dalam surih tindanan ralat untuk keselamatan yang dipertingkatkan. Pastikan versi PHP anda adalah terkini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan dan Menyembunyikan Ralat mysqli_connect dalam PHP dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!