gpt4 book ai didi

php - 将查询错误转换为 MySQLi 中的异常

转载 作者:IT王子 更新时间:2023-10-28 23:51:41 24 4
gpt4 key购买 nike

我正在尝试将 MySQLi 查询错误转换为异常,但不能 - mysqli_sql_exception只有在连接数据库失败时才会抛出。

我使用 mysqli_report(MYSQLI_REPORT_STRICT) 和嵌入到自定义包装类的程序 MySQLi 函数。

旧代码:

public function mysqlQuery($SQL) {

$this->Result = mysqli_query($this->DBlink, $SQL);

if($this->Result === false)
throw new MySQLiQueryException($SQL, mysqli_error($this->DBlink), mysqli_errno($this->DBlink));

return $this->Result;

}

问题: 查询失败时是否正常没有Warning,也没有抛出异常,所以我必须检查mysqli_query()是否返回false?

最佳答案

前段时间我设法解决了这个问题。正如在 other answer 中指出的那样,

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

是告诉 mysqli 抛出异常的正确方法。

只要确保您不要将每个查询都包装在 try-catch 中。这是一个非常普遍的误解,认为一旦你开始使用异常,你就应该开始左右抛出尝试和捕获。恰恰相反,应谨慎使用 try-catch。虽然 99% 的错误不应该就地处理,而应该由站点范围的错误处理程序处理。您可以从我关于 PHP error reporting 的文章中阅读有关该主题的更多信息

关于php - 将查询错误转换为 MySQLi 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14578243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com