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