【发布时间】:2019-07-04 06:41:21
【问题描述】:
我通常从数据库中读取数据,但使用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
【问题讨论】:
-
如果你使用 PDO,我不确定方法 bind_param() 是否存在。尝试使用 bindParam() 方法。参考:https://secure.php.net/manual/en/pdostatement.bindparam.php
-
@anggriyulio 我正在使用 mysqli,第 3 行正常
-
您可以从该过程中获取所有 ID,然后在您的选择中使用
IN在 1 个语句中获取所有 ID (stackoverflow.com/questions/17870999/…)
标签: php database mysqli while-loop