这是错误DbOperations。 php代码:
public function getUserByUserid($user_id){
$stmt = $this->con->prepare("SELECT * FROM mydb.User WHERE user_id = ?" );
$stmt->bind_param("s", $user_id);
return $stmt->get_result()->fetch_assoc();
}
在另一个userLogin.php中,我在这里使用getUserByUserid($ user_id):
if($db->userLogin($_POST['user_id'], $_POST['password'])){
$user = $db->getUserByUserid($_POST['user_id']);
$response['error'] = false;
$response['user_id'] = $user['user_id'];
$response['name'] = $user['name'];
$response['contact_no'] = $user['contact_no'];
$response['email'] = $user['email'];
$response['role'] = $user['role'];
这是错误消息:
<b>Fatal error</b>: Call to a member function fetch_assoc() on a non-object in
<b>C:\xampp\htdocs\Android\includes\DbOperations.php</b> on line
<b>41</b>
<br />
第41行是:return $stmt->get_result()->fetch_assoc();
不确定fetch_assoc()问题是什么,我是初学者...感谢您的帮助:)
答案 0 :(得分:0)
在尝试获取结果之前,必须执行查询。通常用execute
完成:
public function getUserByUserid($user_id){
$stmt = $this->con->prepare("SELECT * FROM mydb.User WHERE user_id = ?" );
$stmt->bind_param("s", $user_id);
// Executing a query
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
更进一步,您可以检查您的执行是否成功完成(在这种情况下get_result()
返回而不是 false)并且在出现错误的情况下 - 以某种方式获取mysqli_errno()
的错误消息例。 manual中的更多信息(通常)。