Mesej Ralat Tersuai dengan Kegagalan Sambungan MySQLi dalam PHP: Panduan Komprehensif
Dalam coretan kod anda, anda menghadapi isu apabila ralat tersuai mesej tidak dipaparkan apabila sambungan MySQLi gagal. Sebelum ini, sambungan mysql PHP memerlukan pengendalian ralat manual melalui semakan if (!$conn). Walau bagaimanapun, dengan kemunculan PHP 8.1, mysqli kini membuang pengecualian pada ralat, menghapuskan keperluan untuk semakan eksplisit sedemikian.
Dalam versi PHP moden, MySQLi secara automatik menimbulkan ralat apabila sambungan gagal. Oleh itu, pernyataan if (!$conn) tidak diperlukan dan harus dialih keluar untuk membolehkan pengecualian dikendalikan dengan berkesan.
Untuk menangani isu ini, anda boleh mengemas kini kod anda seperti berikut:
function connectDatabase(){ $dbServerName = 'local_host'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'kishor_me'; try { $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName); } catch (Exception $e) { // Handle the connection error here } }
Untuk menyembunyikan mesej ralat daripada pengguna, anda boleh menggunakan pilihan konfigurasi display_errors PHP:
ini_set('display_errors', 0);
Untuk mempersembahkan halaman ralat yang lebih mesra pengguna, anda boleh melaksanakan pengendali ralat:
set_exception_handler(function ($e) { error_log($e); http_response_code(500); if (ini_get('display_errors')) { echo $e; } else { echo '<h1>500 Internal Server Error</h1><br>An internal server error has been occurred.<br>Please try again later.'; } });
Apabila pengendalian khusus diperlukan untuk sambungan ralat, anda boleh menggunakan try..catch blocks:
try { $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName); } catch (Exception $e) { // Handle the connection error here }
Untuk mengelakkan kata laluan pangkalan data daripada muncul dalam mesej ralat, tingkatkan kepada PHP 8.2 atau lebih baru.
Atas ialah kandungan terperinci Mengapa Mesej Ralat Sambungan MySQLi Tersuai Saya Tidak Dipaparkan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!