电子邮件已存在于数据库Codeigniter

时间:2016-03-29 18:41:47

标签: php mysql codeigniter email

嘿:)所以我试图检查用户是否已经注册了他们的电子邮件地址。电子邮件是数据库中的唯一字段。我遇到的问题是当我检查它时(如果表中的电子邮件将返回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;出现

感谢您的帮助。

1 个答案:

答案 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;
}