"在没有与语句关联的结果集的情况下尝试读取行#34;在Linux服务器上但在Windows计算机上没有错误

时间:2014-09-02 10:48:39

标签: php mysqli

我正在使用mysqli通过PHP连接MySQL数据库。

当我在使用error_reporting(E_ALL)mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

的Windows计算机上进行编程时

编码时我既没有错误也没有警告。但是在服务器上我得到了

  

致命错误:带有消息的未捕获异常'mysqli_sql_exception'   '当没有与语句'

关联的结果集时,尝试读取行

我认为这有点奇怪。

如果您在未提供结果的陈述上致电mysqli_stmt::fetch(),则会引发错误,例如执行插入,更新或删除查询后,或者您已经调用mysqli_stmt::free_result()

我的代码中有一部分搞砸了,我已经修好了。

但我的问题是,为什么我的开发平台上没有抛出这个错误? 在php.ini或我必须设置的地方有一个选项吗?

1 个答案:

答案 0 :(得分:0)

我现在测试了一些设置,结果是:

如果您使用" MySQL客户端库"而不是"MySQL Native Driver",你得到问题中描述的错误。我不知道,为什么服务器没有使用mysqlnd,因为它是PHP 5.4.0以来的默认设置并且没有理由不使用它但有一些优点,所以我改了它。

但是,不应该尝试从插入,更新或删除查询或释放结果后获取结果。这是毫无意义的。