我是新來的mysqli prepare語句,驚訝地發現了||在mysqli準備語句查詢中沒有按預期工作。 我有檢查用戶是否註冊,它的評估應基於獨特的行ID和電子郵件address.Besides,因爲id列和email列屬於不同的類型,分別是Int(11)
和VARCHAR
的功能,所以我以爲它會在使用bind_param
一些麻煩,因爲不同的數據類型如何使用「或」內的mysqli prepare語句查詢
public function checkUserRegistered($iden){
//The iden can be either a id or a email address
$stmt = $this->connection->prepare("SELECT `id` FROM `$this->table_name` WHERE (`email`= ? || `id`= ?) LIMIT 1 ");
$stmt->bind_param('s',$iden); // s or i ?
if($stmt->execute()){
$result = $stmt->get_result();
if($result->num_rows ==1){
$stmt->close();
return true;
}else{
return false;
}
}
}
什麼是這樣做的正確的方式,我必須使用獨立的功能呢?
''||在許多SQL方言的毗連運算,而不是'或'別名。 – mario
@mario是的,我嘗試過'OR',但它仍然不會返回來自'get_result()' –
行的錯誤''echo $ mysqli-> error;'今天在php mysql間!忘了,今天是好像每天 – Drew