开发者社区> 问答> 正文

如何使用MYSQLI_REPORT_STRICT使mysqli引发异常?

mysqli中有一个名为的函数,该函数mysqli_report()看起来像PDO setAttribute()方法的ERRMODE_*常量。手册说:

MYSQLI_REPORT_STRICT Throw mysqli_sql_exception for errors instead of warnings

因此,请PDO::ERRMODE_EXCEPTION记住,我尝试了这段代码

mysqli_report(MYSQLI_REPORT_STRICT); $mysqli->query("foo"); 但是令我失望的是,它丝毫没有例外也没有发出警告。

因此,问题来了:有没有办法告诉mysqli不使用就抛出异常MYSQLI_REPORT_ALL?

展开
收起
保持可爱mmm 2020-05-10 20:53:28 498 0
1 条回答
写回答
取消 提交回答
  • 经过一番研究,我终于了解到该函数的参数是位掩码,并且必须组合多个值才能获得所需的结果。最终的组合不是太合逻辑,但是可以按预期工作,在忽略警告的同时对查询错误抛出异常。

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 将产生预期的结果:

    致命错误:消息“您的SQL语法有错误;未捕获的异常'mysqli_sql_exception';检查与您的MySQL服务器版本相对应的手册,以获取在第1行的“ foo”附近使用正确的语法

    2020-05-10 20:53:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载