mysqli_connect 失败的自定义错误消息
当尝试连接到数据库时,mysqli_connect 用于显示由该语言生成的错误消息,但是PHP 8.1 改变了这种行为。现在,mysqli 会在错误时引发异常,从而无需手动处理错误。
自定义错误消息会适得其反
不建议对连接错误使用自定义错误消息。错误检测和处理应该由 mysqli 或 PDO 自动处理,而不需要手动 if 检查。显示自定义错误消息可能会损害用户安全并提供不必要的详细信息。
错误处理最佳实践
要向用户隐藏错误消息,请设置 display_errors 在 php.ini 或 PHP 代码中将配置选项设置为 0:
<code class="php">ini_set('display_errors', 0);</code>
此外,实现错误处理程序以显示不可恢复错误的通用错误页面:
<code class="php">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.'; } });</code>
HTTP 500 错误
当页面由于服务器错误而无法传递内容时,它应该使用 HTTP 500 代码进行响应。这是正确处理错误所必需的,不应被抑制。
捕获特定场景的连接错误
在某些情况下,可能需要捕获明确的连接错误。当处理场景超出错误报告范围时,可以在连接尝试周围使用 try..catch 块来实现这一点。
隐藏连接凭据
防止机密数据库密码为了避免在堆栈跟踪中暴露,请将 PHP 更新到版本 8.2 或更高版本,这会隐藏此类信息。
以上是## 如何处理 PHP 8.1 及更高版本中的数据库连接错误:最佳实践和安全注意事项的详细内容。更多信息请关注PHP中文网其他相关文章!