首页 > 后端开发 > php教程 > 如何解决 MySQLi 中的'命令不同步”错误?

如何解决 MySQLi 中的'命令不同步”错误?

Patricia Arquette
发布: 2024-12-02 07:57:09
原创
759 人浏览过

How to Resolve the

MySQLi 中的命令不同步错误

您的代码涉及多个 MySQLi 查询,遇到“命令不同步”错误。发生此错误的原因是,当仍有行需要从正在进行的查询中获取时,MySQL 客户端禁止执行新查询。

了解问题

MySQL 客户端实现严格的协议,确保查询按顺序执行。当您有返回多个结果集的嵌套查询或过程时,协议规定您在执行下一个查询之前从结果集中获取所有行。但是,在您的情况下,您正在尝试执行新查询,同时仍然需要从前一个查询中获取行。

解决方案

主要有两个解决问题的方法:

  1. 预取结果:使用mysqli_store_result() 或 mysqli_result::fetch_all() 在 MySQL 客户端中缓冲外部查询的结果。这将允许您执行进一步的查询而不会遇到错误。
  2. 处理多个结果集:如果您的存储过程返回多个结果集,则需要使用 mysqli_multi_query() 并循环直到 mysqli_next_result () 表示没有更多结果。这可确保您遵守 MySQL 协议。

备用数据存储注意事项

对于分层数据,您可能需要考虑以不同方式存储它以简化查询。例如,您可以使用邻接列表或嵌套集模型。

附加说明

在 CodeIgnitor 3.0.3 中,您可以解决“命令不同步”错误通过修改system/database/drivers/mysqli/mysqli_driver.php中的_execute()方法。

以上是如何解决 MySQLi 中的'命令不同步”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板