sql >> Databasteknik >  >> RDS >> Mysql

Codeigniter låter mig inte uppdatera posten, eftersom vissa fält måste vara unika

använd återuppringningsvalideringsfunktionen

$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback_check_user_email');

function check_user_email($email) {        
    if($this->input->post('id'))
        $id = $this->input->post('id');
    else
        $id = '';
    $result = $this->user_model->check_unique_user_email($id, $email);
    if($result == 0)
        $response = true;
    else {
        $this->form_validation->set_message('check_user_email', 'Email must be unique');
        $response = false;
    }
    return $response;
}

i modell

    function check_unique_user_email($id = '', $email) {
        $this->db->where('email', $email);
        if($id) {
            $this->db->where_not_in('id', $id);
        }
        return $this->db->get('user')->num_rows();
    }

använd samma för användarnamnet....



  1. MySQL-åtkomst nekad 1045-fel

  2. Denna SELECT-fråga tar 180 sekunder att slutföra

  3. Fel 1148 MySQL Det använda kommandot är inte tillåtet med denna MySQL-version

  4. Hibernate - ClassNotFoundException:com.mysql.jdbc.Driver