【问题标题】:Fatal error: Uncaught mysqli_sql_exception instead of mysqli::$errno [closed]致命错误:未捕获 mysqli_sql_exception 而不是 mysqli::$errno [关闭]
【发布时间】:2022-12-21 03:11:35
【问题描述】:

当我尝试php.net mysqli::$errno 下的示例时,我的服务器(具有标准设置的 xampp 8.1.12)不会生成示例中指定的输出,而是一个致命错误 uncought mysqli_sql_exception ...

错误在哪里?

我把整个事情放在一个 try - catch - 块中。这里捕获了致命错误,但尽管将错误代码传递给了异常,我还是收到了 mysqli_sql_exception 消息。

这是一个 PHP 错误。然而,根据 php.net,应该输出一个 mySQL 错误代码。

【问题讨论】:

  • 请在此处添加您的代码,而不是链接到其他页面
  • 您的代码抛出异常,但您链接到的代码不会那样做。显然,链接示例和实际代码之间存在一些差异。您如何期望我们在没有实际代码的情况下调试某些东西?
  • 这些示例尚未针对 PHP 8.1 进行更新。
  • 你尝试这些例子有什么原因吗?这是 X-Y 问题吗?

标签: php mysqli


【解决方案1】:

从 PHP 8.1 开始,默认的 mysqli 错误模式是异常模式。如果出于某种原因你想回到旧的静默模式,你需要使用mysqli_report(MYSQLI_REPORT_OFF)禁用错误报告。

这是非常不推荐的!不要禁用错误报告。

PHP 手册中的代码示例尚未更新。很难找到 mysqli_error() 用法的好例子。不应使用此功能。

【讨论】:

    猜你喜欢
    • 2023-01-06
    • 2021-06-02
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2021-04-17
    • 2022-11-04
    • 2016-10-28
    • 2011-07-31
    相关资源
    最近更新 更多