【发布时间】:2016-01-04 23:52:21
【问题描述】:
我正在这个项目中工作,它是一个 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.
【问题讨论】:
-
嗯,文档说,
$stmt->bind_result()返回一个bool。因此错误消息并不奇怪。您不能在 bool 上调用方法,因为 bool 不是对象。 php.net/manual/en/mysqli-stmt.bind-result.php -
这里不能使用
bind_result()。bind_result()允许您将变量分配给返回的每一列,您正在执行SELECT *,所以这不起作用。如果你有 MySQLnd,那么你可以使用->get_result()。见:php.net/manual/en/mysqli-stmt.get-result.php -
$stmt->fetch_assoc(); 应该在绑定结果变量之后进行。
标签: php android mysqli fatal-error