我在try块中得到了一个mysqli_query,如下所示:
try {
mysqli_query($db,$sql);
}
catch (Exception $e) {
throw $e;
}
我正在尝试捕获“PHP致命错误:未捕获的mysqli_sql_异常错误:数据太长列...”错误,所以我可以在页面上显示一个PHP消息。目前,因为这是一个致命的错误,它只是崩溃的脚本,我不能显示任何东西。
我试过将mysqli_query($db,$sql);
放在try catch块中,但问题仍然存在。我在其他地方读到设置mysqli_report(MYSQLI_REPORT_ALL);
可能会有帮助,我试过将其放在查询之前,但它没有改变任何东西。
有什么想法吗?
1条答案
按热度按时间wj8zmpe11#
当在SQL查询执行周围使用try catch是合理的时,这种情况很少出现。
为了处理一个特定的SQL错误,你可以在
catch
块中添加一个条件来查找特定的错误,可以使用getCode()
或getMessage()
,然后,如果找到了,就按照你喜欢的方式处理它。否则使用throw $e;
,所以所有其他的错误都将按照其他地方的常规方式处理: