如何在一个PHP文件中运行多个SQL调用过程

如何在一个PHP文件中运行多个SQL调用过程,php,mysqli,Php,Mysqli,我得到一份工作 尝试运行第二个SQL存储过程时出错。第一个调用执行得很好,但是当我在代码的其他地方调用第二个SQL过程时,我看到了这个错误。在添加第二个连接之前,是否必须关闭第一个连接 第一次呼叫程序: Commands out of sync; you can't run this command now 我希望你身体健康。这是因为您不能同时有两个查询,因为mysqli默认情况下对准备好的语句使用无缓冲查询。您可以将第一个查询提取到一个数组中并循环,或者告诉mysqli缓冲查询 您可以使用以

我得到一份工作

尝试运行第二个SQL存储过程时出错。第一个调用执行得很好,但是当我在代码的其他地方调用第二个SQL过程时,我看到了这个错误。在添加第二个连接之前,是否必须关闭第一个连接

第一次呼叫程序:

Commands out of sync; you can't run this command now

我希望你身体健康。这是因为您不能同时有两个查询,因为mysqli默认情况下对准备好的语句使用无缓冲查询。您可以将第一个查询提取到一个数组中并循环,或者告诉mysqli缓冲查询

您可以使用以下代码来缓冲查询:

<?php
    $sql="call GetTableCount('bista', 'S_Student')";
    $result = mysqli_query($conn, $sql);
?>
要了解更多与此相关的细节,我建议您详细阅读本文

此外,您还可以使用存储过程进行操作。这意味着您的查询的行为将类似于多重查询。您可以从以下代码获得帮助

$stmt->store_result()
技巧: 我创建了一个函数,在执行mysqli\u查询后调用该函数。这有助于我从缓冲区中删除以前获取的结果

while($this->mysql->more_results())
{
    $this->mysql->next_result();
    $this->mysql->use_result();
}

我还提到了一个技巧,你也可以使用它。
while($this->mysql->more_results())
{
    $this->mysql->next_result();
    $this->mysql->use_result();
}
function clearStoredResults()
{
    global $conn;
    do
    {
        if ($res = $conn->store_result())
        {
            $res->free();
        }
    }
    while ($conn->more_results() && $conn->next_result());
}