php – 为什么我收到错误“命令不同步;你现在不能运行这个命令“

标题中提到的错误文档说明

If you get Commands out of sync; you can’t run this command Now in
your client code,you are calling client functions in the wrong order.

This can happen,for example,if you are using mysql_use_result() and
try to execute a new query before you have called MysqL_free_result().
It can also happen if you try to execute two queries that return data
without calling MysqL_use_result() or MysqL_store_result() in between.

从这里: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)); 
}

这里它使错误命令不同步;你现在不能运行这个命令.我无法理解这种情况

注意:查询中有任何问题,我已经直接向PHPMyAdmin执行了相同的查询,并且工作正常.

查询中有待处理的结果集:

MysqLi_multi_query($connection,$query);

您需要先使用/存储结果,然后才能继续下一个查询
由于您看起来并不真正关心第一个结果集,请在多个查询后执行此操作.

do
{
    $result = MysqLi_store_result($connection);
    MysqLi_free_result($result);
}while(MysqLi_next_result());

另一种方法关闭连接并再次启动它.

MysqLi_close($connection);
$connection = MysqLi_connect("localhost","tbl_msgs");

这一切都取决于您的要求.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...