Mysql
 sql >> база данни >  >> RDS >> Mysql

Codeigniter не ми позволява да актуализирам записа, защото някои полета трябва да са уникални

използвайте функцията за валидиране на обратно повикване

$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;
}

в модел

    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();
    }

използвайте същото за потребителското име....



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намиране на дата между начална и крайна дата

  2. Android не успява да се свърже правилно с базата данни MySQL

  3. Коригирайте „ГРЕШКА 1136 (21S01):Броят на колоните не съвпада с броя на стойностите на ред 2“, когато използвате инструкцията VALUES в MySQL

  4. Как мога да създам работа или събитие в mysql

  5. Намиране на следващия наличен идентификатор в MySQL