ホームページ >データベース >mysql チュートリアル >PHP で mysqli_connect エラーを適切に処理および非表示にするにはどうすればよいですか?

PHP で mysqli_connect エラーを適切に処理および非表示にするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-02 17:30:16862ブラウズ

How Can I Handle and Hide mysqli_connect Errors in PHP Gracefully?

mysqli_connect が失敗した場合の PHP でのカスタム エラー処理

mysqli_connect を使用してデータベースに接続しようとすると、エラー メッセージが表示されます。有効な認証情報を使用して接続を正しく確立する一方で、ユーザーからのエラー メッセージを隠す方法を模索します。

エラー メッセージの削除

PHP 8.1 以降、mysqli はスローをスローします。手動エラー処理を要求する代わりに例外を生成するため、if (!$conn) を通じて手動でエラーを検出する必要がなくなりました。この古いコードは削除する必要があります。

データベース エラーの管理

データベース エラーは、他の PHP 関数と同様に自動的に発生します。コード内でこれらのエラーを手動で検出したり処理したりしないでください。代わりに、display_errors 構成オプションを使用します。

ini_set('display_errors', 0);

これを php.ini または PHP コードで設定して、すべてのエラー メッセージを抑制します。

ユーザーからのエラー メッセージを非表示にする

エラー メッセージがユーザーに届かないようにするには、代わりに一般的なメッセージを表示する、ユーザー フレンドリーなエラー ページが必要です。次のようなエラー ハンドラーの使用を検討してください。

set_exception_handler(function ($e) {
    error_log($e);
    http_response_code(500);
    echo ini_get('display_errors') ? $e : "500 Internal Server Error";
});

このハンドラーはエラーをログに記録し、特定のエラー (開発中) または一般的なメッセージ (本番環境) を表示します。サーバー エラー応答に必要な HTTP 500 ステータス コードを設定します。

接続エラーの処理

接続エラーを特に処理する必要がある場合は、try を使用してください。カスタム エラー処理コードを含む .catch ブロック。ただし、これを通常の接続コードとは別にしてください。

接続資格情報の非表示

PHP 8.2 以降では、セキュリティを強化するためにデータベース パスワードがエラー スタック トレースに表示されなくなります。 PHP のバージョンが最新であることを確認してください。

以上がPHP で mysqli_connect エラーを適切に処理および非表示にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。