致命错误:在非对象上调用成员函数 fetch_assoc()

问题描述 投票:0回答:2

如何修复此错误?这是我的代码。

$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。

php mysqli
2个回答
1
投票

bind_result()
不返回对象,而是返回状态。 这意味着它不能链接到该对象的另一个方法调用。 您需要在两条单独的线上完成。

有关详细信息,请参阅 bind_result 手册页


0
投票

您无法链接

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()
函数在执行任何其他查询之前获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.