如何修复此错误?这是我的代码。
$stmt = $this->conn->prepare("SELECT ngno, email, encrypted_password, name, user_type FROM `guide` WHERE email = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$user = $stmt->bind_result($ngno, $email, $encrypted_password, $name, $user_type)->fetch_assoc();
$stmt->close();
我正在使用远程 SQL 数据库。我也在我的本地主机上尝试过这个。但随后我收到错误,对布尔值上的成员函数 fetch_assoc() 的致命错误调用
此代码使用 get_result 而不是 bind_result。但我需要使用bind_result。
bind_result()
不返回对象,而是返回状态。 这意味着它不能链接到该对象的另一个方法调用。 您需要在两条单独的线上完成。
有关详细信息,请参阅 bind_result 手册页。
您无法链接
bind_result
,因为它不返回对象。试试这个:
$stmt = $this->conn->prepare("SELECT ngno, email, encrypted_password, name, user_type FROM `guide` WHERE email = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$stmt->bind_result($ngno, $email, $encrypted_password, $name, $user_type);
$user = $stmt->fetch();
$stmt->close();
注: 使用
mysqli_stmt_execute()
时,必须使用 mysqli_stmt_fetch()
函数在执行任何其他查询之前获取数据。