命令不同步;您现在无法运行此命令:多个查询,而不是同时

时间:2015-04-25 08:24:12

标签: php mysql mysqli

我制作了一个PHP / MySQL(i)网站应用程序,我收到了这个可怕的错误,"命令不同步;你现在不能运行这个命令"。

我有与数据库的连接。

(PS - 这与所有其他类似标题的问题不同 - 我已经完成了所有这些。我想要做的是打开第一个查询,关闭第一个查询,然后打开第二个查询。我不想执行一次多个语句,或同时打开多个结果集)

这是我正在做的事情:

<?php
$sql = 'CALL spSelectProductAndVendor(1, 1)'; 
$rs = $mysqli->query($sql);
echo($mysqli->error);
if ($rs->num_rows > 0) {
    while ($row=$rs->fetch_assoc()) {
        echo '<h1 class="page-header">' . $row["productname"] . '<small> pertaining to vendor: ' . $row["vendorname"] . '</small></h1>';
    }   
}   
$rs->close();
?>

HTML / CSS

<?php
$sql = 'CALL spSelectRecentDocumentScores();';
$rs = $mysqli->query($sql);
echo($mysqli->error);
if ($rs->num_rows > 0) {
    while ($row=$rs->fetch_assoc()) {
        if($row["totalwarnings"]>50) { echo '<tr class="danger">'; } else { echo '<tr class="active">'; }
?>
<td><a href="documentdetail.php?documentid=<?php echo $row["documentid"]; ?>" style="color:#000000"><?php echo $row["documentid"]; ?></a></td>
<td>etc...</td>
</tr>
<?php
    }
}
?>

为什么这个错误只发生在SECOND电话上?

$rs = $mysqli->query($sql);

第一个工作正常。第二个没有。但我正在关闭第一个$ rs。那么缺少什么?

1 个答案:

答案 0 :(得分:0)

想出来..需要添加$ conn-&gt; next_result();第一个结果集关闭后:

$rs->close();
$mysqli->next_result();

然后可以安全地打开第二个$ rs。