Para realizar un UPSERT (una combinación de update e insert) en CodeIgniter, puedes seguir estos pasos:
- Configura tu base de datos: Asegúrate de tener una tabla en tu base de datos donde realizarás el upsert.
- Crea un modelo: En CodeIgniter, los modelos se utilizan para interactuar con la base de datos. Crea un modelo si aún no lo tienes.
- Escribe la función upsert: Puedes escribir una función personalizada en tu modelo para realizar el upsert. Aquí tienes un ejemplo básico:
classMiModeloextendsCI_Model{ public function upsert($data) { // Verifica si el registro ya existe $this->db->where('id', $data['id']); $query = $this->db->get('mi_tabla'); if ($query->num_rows() > 0) { // Si existe, actualiza el registro $this->db->where('id', $data['id']); $this->db->update('mi_tabla', $data); } else { // Si no existe, inserta un nuevo registro $this->db->insert('mi_tabla', $data); } } }
Llama a la función upsert: Desde tu controlador, puedes llamar a esta función pasando los datos que deseas insertar o actualizar.
classMiControladorextendsCI_Controller{ public function guardar() { $data = array( 'id' => $this->input->post('id'), 'nombre' => $this->input->post('nombre'), 'email' => $this->input->post('email') ); $this->load->model('MiModelo'); $this->MiModelo->upsert($data); } }
Este es un ejemplo básico y puede necesitar ajustes según la estructura de tu base de datos y tus necesidades específicas.