首页 >数据库 >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 状态代码,这是服务器错误响应所必需的。

处理连接错误

如果您需要专门处理连接错误,请尝试使用。带有自定义错误处理代码的 .catch 块。但是,请将其与常规连接代码分开。

隐藏连接凭据

PHP 8.2 及更高版本可防止数据库密码出现在错误堆栈跟踪中,以增强安全性。确保您的 PHP 版本是最新的。

以上是如何优雅地处理和隐藏 PHP 中的 mysqli_connect 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn