我通常从数据库中读取数据,但是使用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
答案 0 :(得分:2)
阅读错误消息。
致命错误:在第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()
函数returns false
,如果有错误。
这意味着您的查询无效。您可以通过查看$db->error