gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:01:08 25 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;

}

问题:查询失败时不会抛出警告或异常,所以我必须检查 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/56200066/

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