PHP:命令不同步;现在无法运行此命令

PHP:命令不同步;现在无法运行此命令,php,database,mysqli,while-loop,Php,Database,Mysqli,While Loop,我通常从数据库读取数据,但使用while时出错 我的代码是: $BarberId = 1; $stmt = $db->prepare("CALL `GetBranch`(?);"); $stmt->bind_param('i', $BarberId); $stmt->execute(); $Tree_Barber_Id = NULL; $stmt->bind_result($Tree_Barber_Id); $stmt->store_result(); i

我通常从数据库读取数据,但使用while时出错

我的代码是:

$BarberId    = 1;
$stmt = $db->prepare("CALL `GetBranch`(?);");
$stmt->bind_param('i', $BarberId);
$stmt->execute();

$Tree_Barber_Id = NULL;
$stmt->bind_result($Tree_Barber_Id);
$stmt->store_result();

if($stmt->num_rows)
{
    while($stmt->fetch())
    {        
        $Priod = NULL;
        $stmt2 = $db->prepare("SELECT `priod` FROM `t_barber` WHERE `id`=?");

        $stmt2->bind_param('i', $Tree_Barber_Id); //ERROR IS HERE!!!

        $stmt2->execute();
        $stmt2->bind_result($Priod);
        $stmt2->store_result();
    }
}

$stmt->close();
我认为这个错误是因为变量stmt还没有关闭。但通过$stmt->close关闭;while命令将不起作用

错误是:

Fatal error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\file1.php on line 17

阅读错误消息

致命错误:调用第17行C:\xampp\htdocs\file1.php中布尔值上的成员函数bind_param

第17行是这样的:

$stmt2->bind_param('i', $Tree_Barber_Id);
错误消息告诉您$stmt2是一个布尔值$stmt2来自这一行:

$stmt2 = $db->prepare("SELECT `priod` FROM `t_barber` WHERE `id`=?");
如果出现错误,mysqli的prepare函数


这意味着您的查询无效。您可以通过查看$db->error

来找出它的无效之处。如果您使用PDO,我不确定方法bind_param是否存在。尝试wit bindParam方法。Ref:@anggriyulio I'm use mysqli,第3行是work。您可以从过程中获取所有ID,然后在select语句中使用IN获取所有ID。该命令直接在MySql中执行$db->错误是命令不同步;您现在不能运行此命令好的,也许中的答案可以为您指出解决该问题的正确方向。事实上,在使用存储过程命令后,我必须使用以下命令:$db->next\u result;