我試圖檢查數據庫中列出的電子郵件地址以確保它與任何電子郵件地址不匹配。試圖檢查數據庫中是否已經存在電子郵件
我試圖使用rowCount
,據我瞭解,它會返回bool true
或false
是否找到匹配項。
但是電子郵件地址仍然輸入到數據庫中。
這裏是我使用來檢查電子郵件的方法:
public function checkEmail(){
if($this->post_data['reg_email'] == $this->post_data['reg_conf_email']){
if(filter_var($this->post_data['reg_email'], FILTER_VALIDATE_EMAIL)){
$stmt = $this->dbh->prepare("SELECT email FROM oopforum_users WHERE email = ?");
$stmt->bindParam(1, $this->post_data['reg_email'], PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->rowCount();
if($this->result){
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}
然後在我的調用程序我有這樣的:
if($register->checkUsername()){
if(!$register->checkEmail()){
//continue...
}else{
$message = 'ERROR: That email is not valid, doesn\'t match the confirmation email or already exists on our database, please choose another one.';
}
}else{
$message = 'ERROR: That username is invalid or is already taken, please choose another one and ensure it is atleast 4 characters long.';
}
爲什麼不能對同一匹配的電子郵件一個在數據庫中並拋出錯誤消息?
謝謝,但我只想使用pdo。 – crm
你可不可以這麼說!我的吸引力中心是sql和結果邏輯..你可以根據你的需要編寫它.. – manurajhada