我正在使用mysqli
通过PHP连接MySQL数据库。
当我在使用error_reporting(E_ALL)
和mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
编码时我既没有错误也没有警告。但是在服务器上我得到了
致命错误:带有消息的未捕获异常'mysqli_sql_exception' '当没有与语句'
关联的结果集时,尝试读取行
我认为这有点奇怪。
如果您在未提供结果的陈述上致电mysqli_stmt::fetch()
,则会引发错误,例如执行插入,更新或删除查询后,或者您已经调用mysqli_stmt::free_result()
。
我的代码中有一部分搞砸了,我已经修好了。
但我的问题是,为什么我的开发平台上没有抛出这个错误? 在php.ini或我必须设置的地方有一个选项吗?
答案 0 :(得分:0)
我现在测试了一些设置,结果是:
如果您使用" MySQL客户端库"而不是"MySQL Native Driver",你得到问题中描述的错误。我不知道,为什么服务器没有使用mysqlnd,因为它是PHP 5.4.0以来的默认设置并且没有理由不使用它但有一些优点,所以我改了它。
但是,不应该尝试从插入,更新或删除查询或释放结果后获取结果。这是毫无意义的。