在codeigniter中检查电子邮件

时间:2014-07-17 18:41:07

标签: php mysql codeigniter

我看过网上,发现了许多与我的问题密切相关的问题,但没有任何问题可以解决我的问题。它非常简单,我试图遍历我的电子邮件表来检查电子邮件是否存在,如果不存在,请继续添加它。事情是,它总是添加电子邮件,查询不返回任何东西(甚至它应该)。我也使用codeigniter,这有助于或使情况复杂化。

以下是方法:

public function  add_email(){
        $email = $this->input->post('email');
        $query = $this->db->query("SELECT * FROM emails WHERE email LIKE '$email'");
        $query->result();
        if($query->num_rows() == 0){
            $data = array(
                'email' => $this->input->post('email'),
                'name' => $this->input->post('name')
            );
            return $this->db->insert('emails', $data);
        } 
        return FALSE;
    }

提前谢谢

2 个答案:

答案 0 :(得分:0)

我在用户登录模块的项目中做了同样的事情。

使用以下代码: -

function email_check($srt) {
    $query = $this->db->get_where('emails', array('email_id' => $srt), 1);
    if ($query->num_rows() == 1) {
        return true;
    } else {
        return false;
    }
}

function add_email() {
    $email = filter_input(INPUT_GET, email, FILTER_SANITIZE_SPECIAL_CHARS);
    $name = filter_input(INPUT_GET, name, FILTER_SANITIZE_SPECIAL_CHARS);

    if ($this->email_check($email)) {
        $data = array(
            'email' => $this->input->post('email'),
            'name' => $this->input->post('name')
        );
        return $this->db->insert('emails', $data);
    } else {
        echo 'email already exit';
    }
}

答案 1 :(得分:0)

在将邮件(and you validate your post data)插入数据库之前说明您的邮件小写({{3}}),您可以执行以下操作

控制器

$data = array(
    'email' => strtolower($this->input->post('email')),
    'name'  => $this->input->post('name')
);

$this->model_name->add_email($data);

模型

public function add_email($data) {

    $this->db->where('email', $data['email']);
    $this->db->from('emails');

    if($this->db->count_all_results() == 0) {

        return $this->db->insert('emails', $data);
    } else {

        return FALSE;
    }
}