嘿:)所以我试图检查用户是否已经注册了他们的电子邮件地址。电子邮件是数据库中的唯一字段。我遇到的问题是当我检查它时(如果表中的电子邮件将返回false并且将向用户发送消息),即使输入的电子邮件不存在,num_rows()也始终返回false桌子;
我不知道该帖子是否有问题,但如果我将该电子邮件部分注释掉并注册,则会有效,如果该电子邮件是重复的,则会显示1062错误。
模型功能checkEmail()
$email_address = $this->input->post('email');
$this->db->where('email', $email_address);
$result = $this->db->get('user');
if($result->num_rows() > 0){
/*
* the email already exists
* */
return false;
}
和控制器:
$checkEmail = $this->f_model->checkEmail();
if(!$checkEmail){
/*
* if email exists
* */
$msg = '<font color=red>Email already registered.</font><br />';
$this->register($msg);
}
else {
$interest = $this->f_model->enter_register_details_01();
if(!$interest) {
$msg = '<font color=red>Password and Confirm Password do not match.</font><br />';
$this->register($msg);
}
else {
$data['msg'] = $msg;
$this->load->view("registration_view_02", array('interest' => $interest,
'message' => $data));
}
}
即使表格为空,也会显示带有&#34;电子邮件已经注册的消息&#34;出现
感谢您的帮助。
答案 0 :(得分:1)
在checkEmail()
函数中添加else语句
$email_address = $this->input->post('email');
$this->db->where('email', $email_address);
$result = $this->db->get('user');
if($result->num_rows() > 0){
/*
* the email already exists
*
*/
return false;
}else{
return true;
}