Php &引用;命令不同步;你可以';现在不要运行此命令";-由mysqli::multi_查询引起
我正在通过Php &引用;命令不同步;你可以';现在不要运行此命令";-由mysqli::multi_查询引起,php,mysqli,mysqli-multi-query,Php,Mysqli,Mysqli Multi Query,我正在通过mysqli::multi_query运行多个删除操作,这会打乱行中的下一个查询。正在抛出以下错误 Error - SQLSTATE HY000. Sql error: Commands out of sync; you can't run this command now 我是否需要以某种方式清除多重查询,以便它不会干扰我的下一个查询?这个错误的原因是什么 这就是我运行多重查询的方式: function deleteSomeTables($args) { $sql = '
mysqli::multi_query
运行多个删除操作,这会打乱行中的下一个查询。正在抛出以下错误
Error - SQLSTATE HY000.
Sql error: Commands out of sync; you can't run this command now
我是否需要以某种方式清除多重查询,以便它不会干扰我的下一个查询?这个错误的原因是什么
这就是我运行多重查询的方式:
function deleteSomeTables($args) {
$sql = 'delete 1;delete another;';
if ($database->multi_query($sql)) {
return true;
} else {
return false;
}
}
我在windows 7上使用最新版本的Xampp,使用的是“您正在启动查询”,但在继续之前,您需要处理这些查询的结果。描述了处理结果的各种方法。处理后,您将能够很好地执行其他查询
您遇到的错误消息实际上在页面上有更好的解释(不过请记住,在这个实例中,当您执行删除操作时,mysqli::query不会返回结果对象)
当然,您可以将多个查询更改为多个单查询,我不知道每种方法的优缺点。这有助于我删除“命令不同步”错误:
do {
$mysqli_conn_obj->use_result();
}while( $mysqli_conn_obj->more_results() && $mysqli_conn_obj->next_result() );
在调用multi_query后添加此代码,它将使用结果集并解决错误。Seva的代码很可能会解决您的问题,如果您使用像我这样的过程风格,请使用此代码
do {
if ($result = mysqli_store_result($connect)) {
mysqli_free_result($result);
}
} while (mysqli_next_result($connect));
既然我没有得到任何返回,那么我如何清除查询呢。你没有告诉我任何我不知道的事情,比如
do{$mysqli->use_result();}while($mysqli->next_result())