ホームページ > データベース > mysql チュートリアル > カスタム MySQLi 接続エラー メッセージが PHP に表示されないのはなぜですか?

カスタム MySQLi 接続エラー メッセージが PHP に表示されないのはなぜですか?

Barbara Streisand
リリース: 2024-11-30 16:17:12
オリジナル
750 人が閲覧しました

Why Aren't My Custom MySQLi Connection Error Messages Displaying in PHP?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート