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 状态代码,这是服务器错误响应所必需的。
处理连接错误
如果您需要专门处理连接错误,请尝试使用。带有自定义错误处理代码的 .catch 块。但是,请将其与常规连接代码分开。
隐藏连接凭据
PHP 8.2 及更高版本可防止数据库密码出现在错误堆栈跟踪中,以增强安全性。确保您的 PHP 版本是最新的。
以上是如何优雅地处理和隐藏 PHP 中的 mysqli_connect 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!