【问题标题】:Posting data twice into the database - CodeIgniter将数据两次发布到数据库中 - CodeIgniter
【发布时间】:2013-11-12 15:49:34
【问题描述】:

所以我开始了我的第一个 CodeIgniter 项目,而且我还在学习很多东西。现在我已经制作了这个用户注册页面。

当用户填写注册表并点击提交时,会触发以下功能:

/**
* Signup validation
*/
public function signup_validation(){
    $this->load->library('form_validation');

    $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[users.email]');
    $this->form_validation->set_rules('password', 'Password', 'required|trim');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

    $this->form_validation->set_message('is_unique', "That email address is already is use");

    if($this->form_validation->run()){
        $this->load->model('model_users');

        if ($this->model_users->add_user()){
            echo "user has been added";
        } else {
            echo "Something went wrong";
        }

        $this->model_users->add_user();
    } else {
        $this->load->view('view_signup');
    }
}

该函数然后调用“model_users”并运行函数“add_user”:

public function add_user(){
    $data = array(
        'email' => $this->input->post('email'),
        'password' => $this->input->post('password')
    );

    $query = $this->db->insert('users', $data);

    if ($query){
        return true;
    } else {
        return false;
    }
}

所以这段代码很好地添加了数据库中的数据。验证效果很好。但由于某种原因,它会将每个用户添加两次。我试图找出导致此问题的原因,但我似乎无法找出原因。

我还创建了另一小段代码,您可以在其中将页面类别添加到数据库中,代码非常相似,但不会发布两次。

【问题讨论】:

    标签: php database codeigniter


    【解决方案1】:

    你打电话

    $this->model_users->add_user()
    

    两次。

    在 if 语句中一次作为条件,在 else 之后再次出现。删除第二个调用。

    【讨论】:

    • 是的.. 我不太确定我自己怎么没看到这个。感谢您的努力!
    【解决方案2】:

    $this->model_users->add_user() 在 if() 内部调用两次,在 if else 之后调用一次。

        if ($this->model_users->add_user()){
            echo "user has been added";
        } else {
            echo "Something went wrong";
        }
    
        $this->model_users->add_user();
    

    我想你想删除下面的。

    【讨论】:

    • 我自己怎么可能没有看到这个......非常感谢伙计!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2020-11-09
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多