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