标题中提到的错误文档
如果命令不同步;您现在无法运行此命令 您的客户端代码,您以错误的顺序调用客户端函数。
例如,如果您使用的是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
但是在First Query中我没有从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
。我无法理解这种情况
注意:查询中有任何问题,我已经直接向PHPMyAdmin执行了相同的查询,并且工作正常。
答案 0 :(得分:14)
查询中有待处理的结果集:
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");
这完全取决于您的要求。