为什么我得到"致命错误:在非对象上调用成员函数fetch_assoc()"?

时间:2015-10-07 16:20:18

标签: php android mysqli fatal-error

我在这个Android登录应用程序项目中工作。它从在线服务器获取数据。

注册工作,数据库更新,但登录不起作用。 我们使用JSON来解析从服务器到应用程序的数据。

这是我的PHP代码:

public function getUserByEmailAndPassword($email, $password) {

    $stmt = $this->conn->prepare("SELECT * FROM user_info WHERE email = ?");

    $stmt->bind_param("s", $email);

    if ($stmt->execute()) {
        $user = $stmt->bind_result()->fetch_assoc();
        $stmt->close();
        return $user;
    } 
    else {
        return NULL;
    }
}

我得到的错误如下:

Fatal error: Call to a member function fetch_assoc() on a non-object.

1 个答案:

答案 0 :(得分:1)

bind_result()不是您想要的方法。该方法(顺便返回一个布尔值)允许您将变量分配给查询中返回的列。您的查询使用SELECT *,因此您无法使用bind_result()

您想要的是使用get_result()。这需要安装mysqlnd driver

$user = $stmt->get_result()->fetch_assoc();