我有一個問題與我準備好的聲明,我已經通過堆棧搜索答案,並嘗試了很多關閉他們無濟於事,我已經檢查插入語句是正確的,我也嘗試使用聲明作爲似乎工作,定期聲明 我得到的錯誤是如下Mysqli bind_param錯誤
Fatal error:call to function bind_param()on a non object in ** on line 23
當我使用一個普通查詢第一查詢的第二不顯示錯誤
的代碼是
public function reg_user($name,$username,$password,$email){
$password = password_hash($password);
$stmt = $this->db->prepare("SELECT uid FROM users WHERE uname= ? OR uemail = ?");
$stmt->bind_param("ss", $username,$email);
$stmt->execute();
$count_row = $stmt->num_rows;
if($count_row == 0){
$stmt = $this->db->prepare("INSERT INTO users (uname,upass,fullname,uemail) VALUES(?,?,?,?)");
$stmt->bind_param("ssss", $username,$password,$name,$email); //line 23
$return = $stmt->execute();
return $return;
} else{
return false;
}
}
你不能同時綁定多個參數。您應該在'execute()'中將它們作爲數組傳遞,或者每次綁定一個參數。前者更模塊化,更少冗餘 – Terry
錯誤不能在第23行 - 代碼只有15行! –
是的,但它是一個類有更多的線條的一部分,這是毫無意義的發佈全班時,這是錯誤的功能 –