我在這個項目中工作,這是一個Android登錄應用程序。它從聯機服務器獲取數據。爲什麼我得到一個「致命錯誤:調用一個非對象的成員函數fetch_assoc()」?
註冊工作和數據庫得到更新,但登錄不起作用。 我們使用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'。所以這個錯誤信息並不奇怪。你不能在布爾上調用一個方法,因爲布爾不是一個對象。 http://php.net/manual/en/mysqli-stmt.bind-result.php – arkascha
你不能在這裏使用'bind_result()'。 'bind_result()'可以讓你爲每個返回的列分配變量,你正在做'SELECT *',所以這是行不通的。如果你有MySQLnd,那麼你可以使用' - > get_result()'。請參閱:http://php.net/manual/en/mysqli-stmt.get-result.php –
** $ stmt-> fetch_assoc(); **應在綁定結果變量後完成。 –