对 PHP MySQL 查询中的“命令不同步”错误进行故障排除
使用 PHP 和 MySQL 时,您可能会遇到令人沮丧的“命令不同步;您现在无法运行此命令”错误。当连续执行多个 MySQL 查询而没有正确处理其异步性质时,通常会发生这种情况。 核心问题在于 mysqli
查询的默认无缓冲行为。
有两种有效的解决方案可以解决这个问题:
处理第一个查询的结果:使用$con->query()
执行初始查询,并将结果存储在数组中。 后续操作应该迭代该数组,确保每个操作都是独立执行的。
使用查询缓冲:在准备好的语句中使用store_result()
方法。这会强制 mysqli
缓冲查询结果,通过避免按需行获取来防止“命令不同步”问题。
这是一个说明查询缓冲的示例:
<code class="language-php">$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ?%"; if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery); $rowcount = $data->num_rows; // Proceed with your application logic }</code>
请记住,在处理大量数据集时,启用查询缓冲会增加内存消耗。 选择最适合您的数据量和应用程序要求的方法。
以上是如何修复 PHP MySQL 查询中的'命令不同步”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!