PHP での MySQLi Connect エラーのカスタム エラー メッセージ: 総合ガイド
コード スニペットで、カスタム エラーが発生する問題が発生しました。 MySQLi 接続が失敗した場合、メッセージは表示されません。以前は、PHP の mysql 拡張機能では、if (!$conn) チェックによる手動エラー処理が必要でした。ただし、PHP 8.1 の登場により、mysqli はエラー時に例外をスローするようになり、そのような明示的なチェックの必要性がなくなりました。
最新の PHP バージョンでは、MySQLi が自動的に接続が失敗するとエラーが発生します。したがって、if (!$conn) ステートメントは不要であり、例外を効果的に処理できるように削除する必要があります。
この問題に対処するには、コードを更新します。次のように:
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 } }
ユーザーからエラー メッセージを隠すには、次を利用できます。 PHP の display_errors 設定オプション:
ini_set('display_errors', 0);
よりユーザー フレンドリーなエラー ページを表示するには、エラー ハンドラーを実装できます:
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.'; } });
接続エラーに対して特定の処理が必要な場合は、次のコマンドを使用できます。 try..catch ブロック:
try { $conn = mysqli_connect($dbServerName, $dbUsername, $dbPassword, $dbName); } catch (Exception $e) { // Handle the connection error here }
データベース パスワードがエラー メッセージに表示されないようにするには、PHP 8.2 以降にアップグレードしてください。
以上がカスタム MySQLi 接続エラー メッセージが PHP に表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。