为什么我收到错误“命令不同步; 你现在不能运行此命令”(Why I am getting the

2019-09-01 18:37发布

错误的在标题中提到的文件说,

如果你得到命令不同步; 你不能在你的客户端代码现在运行此命令 ,您呼叫的客户端功能,以错误的顺序。

这可能发生,例如,如果你使用了mysql_use_result(),并尝试执行新的查询你已经调用了mysql_free_result()之前。 如果您尝试执行两个查询,如果没有调用了mysql_use_result()或了mysql_store_result()之间返回的数据也可能发生。

从这里: http://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html

但在第一个查询我不取出由MySQL数据库的任何数据,我只是插入。 而在第二个查询我正在从数据库中的数据。

下面是我的代码

$connection = mysqli_connect("localhost","username","password","tbl_msgs");
if(mysqli_connect_errno($connection))
{
    die("Failed to connect to MySQL: " . mysqli_connect_error());
}
$query = "INSERT INTO users (total_comments, total_views) 
          VALUES ({$total_comments}, {$total_views});";

$query .= "INSERT INTO msgs (notifications) VALUES ({$notifications})";

mysqli_multi_query($connection,$query);

这个高达每步的是好的。 但是,当我执行以下查询它给人的错误

$select_query = "SELECT * FROM msgs WHERE msg_id = {$msg_id}";

$result_set = mysqli_query($connection,$select_query);

if(!$result_set) {
    die(mysqli_error($connection)); 
}

这给出了错误Commands out of sync; you can't run this command now Commands out of sync; you can't run this command now 。 我无法理解这种情况

注:在查询的任何问题,我已经直接执行相同的查询到phpMyAdmin,它工作正常。

Answer 1:

有结果集从查询待处理:

mysqli_multi_query($连接,$查询);

您需要使用/存储结果之前,你可以用后一个查询着手:既然你的样子,你真的不关心第一个结果集,多查询后做..

do
{
    $result = mysqli_store_result($connection);
    mysqli_free_result($result);
}while(mysqli_next_result());

另一种方法是关闭连接并重新开始吧..

mysqli_close($connection);
$connection = mysqli_connect("localhost","username","password","tbl_msgs");

这一切都取决于你的需求。



文章来源: Why I am getting the Error “Commands out of sync; you can't run this command now”