以下代码产生错误:Notice: Undefined variable: morrisons
。
我完全不知道为什么会出现这个错误,实际分配的变量似乎是一个问题,因为它没有被分配。
$sql = "SELECT name
FROM stds
INNER JOIN `users`
ON users.`id` = stds.`id`
WHERE users.`username` = ?";
if ($stmt = $db->prepare($sql)) {
$stmt->bind_param("s", $_POST['username']);
$stmt->execute();
$stmt->bind_result($morrisons);
$stmt->fetch();
$stmt->close();
}
echo $morrisons;
答案 0 :(得分:1)
$stmt->bind_result($morrisons);
此行仅在此行
时执行if ($stmt = $db->prepare($sql)) {
产生true
结果。否则,将跳过整个块,并且永远不会声明$morrisons
。所以这一行
echo $morrisons;
会产生错误。因此根本原因是$db->prepare
返回false
,这意味着查询在某种程度上是错误的,或者数据库连接已经消失。在这种情况下检查错误。