首页 > 后端开发 > php教程 > 为什么 MySQLi 查询有时会无提示地失败,需要显式的错误返回值检查?

为什么 MySQLi 查询有时会无提示地失败,需要显式的错误返回值检查?

Patricia Arquette
发布: 2024-12-30 10:19:09
原创
159 人浏览过

Why Do MySQLi Queries Sometimes Fail Silently, Requiring Explicit False Return Value Checks?

将 MySQLi 查询错误作为异常处理

简介

在 MySQLi 中,查询错误通常是报告为警告或错误消息。但是,开发人员可能更愿意将这些错误转换为异常,以便更好地处理错误。本文研究了将 MySQLi 查询错误转化为异常的过程,并解决了查询失败返回 false 而不触发警告或异常的常见问题。

问题

执行 MySQLi 时查询时,开发人员经常检查 mysqli_query() 是否返回 false 以检测查询错误。但是,这种方法可能不方便,并且可能并不总是能捕获意外错误。

以前的代码

$result = mysqli_query($DBlink, $SQL);
if ($result === false) {
    throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink));
}
登录后复制

问题

为什么在某些情况下,查询失败时既不抛出警告也不抛出异常,迫使开发者显式地检查 mysqli_query() 的错误返回值?

答案

要启用 MySQLi 查询错误的异常,必须使用 mysqli_report() 正确设置错误报告级别功能。以下代码片段演示了正确的用法:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
登录后复制

通过将错误报告级别设置为 MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT,MySQLi 将开始抛出所有错误和严格错误的异常,包括查询失败。

注意

虽然通常建议使用异常进行错误处理,但这一点很重要避免过度使用 try-catch 块。错误处理应通过通用错误处理程序进行集中处理,以最大限度地减少代码膨胀并确保错误报告的一致性。

以上是为什么 MySQLi 查询有时会无提示地失败,需要显式的错误返回值检查?的详细内容。更多信息请关注PHP中文网其他相关文章!

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