首页 > 数据库 > mysql教程 > 如何解决 MySQLi 使用嵌套查询时出现的'命令不同步”错误?

如何解决 MySQLi 使用嵌套查询时出现的'命令不同步”错误?

Linda Hamilton
发布: 2024-12-08 07:29:10
原创
533 人浏览过

How to Resolve the

使用 MySQLi 时出现“命令不同步”

问题:

An尝试同时执行多个 MySQLi 查询会触发“命令不同步”错误。嵌套查询检索分层数据。

原因:

当正在进行的查询中的行保持未获取状态时,MySQL 不允许执行新查询。

解决方案:

选项1:使用mysqli_store_result()

$result = mysqli_store_result($db);
// Execute subsequent queries
登录后复制

这会缓冲MySQL客户端中的行,允许执行多个查询。

选项2:使用mysqli_result::fetch_all()

$result = mysqli_query($db, $sql);
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);
// Execute subsequent queries
登录后复制

这将返回整个结果集作为数组,允许执行多个查询。

注意事项:

嵌套查询表示分层数据存储。考虑替代数据模型或使用 CodeIgnitor 等框架来使用 mysqli_next_result() 处理来自存储过程的多个结果集。

CodeIgnitor 实现:

// Edit code in system/database/drivers/mysqli/mysqli_driver.php
protected function _execute($sql)
{
    $results = $this->conn_id->query($this->_prep_query($sql));
    @mysqli_next_result($this->conn_id); // Fix 'command out of sync' error
    return $results;
}
登录后复制

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

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