命令不同步;你现在不能运行这个命令; PHP while循环

时间:2014-05-19 01:41:56

标签: php mysql

当运行下面的代码时,在第二个循环(它循环数量的次数)它给我一个命令不同步错误。造成这种情况的原因是什么?

PHP代码:

while ($i < $quantity) {
    $result = mysqli_multi_query($con, "
        INSERT INTO parts (capacity, length, width, height, orientation, weight, location, description, status, partNumber) VALUES ('$capacity', '$length', '$width', '$height', '$orient', '$weight', '$location', '$desc', '$status', '$partNum');

        INSERT INTO craneparts (craneID, partsID) VALUES ('$craneID', LAST_INSERT_ID());
    ") or die(mysqli_error($con)); 
    $i++;
}

1 个答案:

答案 0 :(得分:3)

https://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html

  

如果你的命令不同步;你现在无法运行此命令   您的客户端代码,您以错误的顺序调用客户端函数。

     

例如,如果您使用的是mysql_use_result()和,则会发生这种情况   尝试在调用mysql_free_result()之前执行新查询。   如果您尝试执行两个返回数据的查询,也会发生这种情况   无需在中间调用mysql_use_result()或mysql_store_result()。

尝试在mysqli_multi_query调用

之间调用mysqli_next_result
while ($i < $quantity) {
    $result = mysqli_multi_query($con, "
        INSERT INTO parts (capacity, length, width, height, orientation, weight, location, description, status, partNumber) VALUES ('$capacity', '$length', '$width', '$height', '$orient', '$weight', '$location', '$desc', '$status', '$partNum');

        INSERT INTO craneparts (craneID, partsID) VALUES ('$craneID', LAST_INSERT_ID());
    ") or die(mysqli_error($con));

    while(mysqli_more_results($con) && mysqli_next_result($con)) {;} // flush multi_queries

    $i++;
}