PHP 中的“命令不同步”错误
使用 mysqli 执行多个 MySQL 查询时,可能会遇到“命令不同步;您现在无法运行此命令”错误。此错误发生是因为 mysqli 默认使用非缓冲查询,这意味着必须在执行后续查询之前检索第一个查询的结果。
错误原因
在提供的 PHP 代码中,正在执行两个 MySQL 查询:
$data = $con->query($countQuery)
$rows = getRowsByArticleSearch("test", "Auctions", " ")
当在检索第一个查询的结果之前执行第二个查询时,很可能会触发此错误。
解决方案
有两种方法可以解决此问题:
1. 获取第一个查询的结果
在执行第二个查询之前,使用 mysqli_fetch_*()
方法检索第一个查询的结果。例如:
<code class="language-php">$data = $con->query($countQuery); $rowcount = $data->num_rows;</code>
2. 缓冲查询
使用 mysqli_stmt::store_result()
启用查询缓冲。这将导致 mysqli 在执行第二个查询之前存储第一个查询的结果。
<code class="language-php">$numRecords->store_result();</code>
其他说明
$countQuery
查询中存在语法错误。确保查询构建正确。mysqli::multi_query()
方法。此方法自动处理缓冲和同步。以上是为什么在 PHP 中运行多个 MySQL 查询时出现'命令不同步”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!