首页 > 数据库 > 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 连接失败的自定义错误消息:综合指南

在您的代码片段中,您遇到一个问题,其中自定义错误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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板