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中文网其他相关文章!