CodeIgniter – ID del último registro insertado

En muchas ocasiones, cuando insertamos un registro en la base de datos, nos interesa saber que identificador se le ha asignado. Bien, veamos cómo se hace con CodeIgniter que es muy sencillo:

Supongamos que tenemos la tabla alumno en la base de datos con los siguientes campos:

1
2
3
id integer(11) PRIMARY KEY AUTO_INCREMENT
nombre varchar(200)
nacimiento date

Fijaos en el campo ‘id’ que es la clave primaria y es autoincrement.

Vale. Ahora en nuesto fichero model que se encarga de insertar los datos (no entro en detalles del controlador y la vista…) tendremos

1
2
3
4
5
6
7
8
9
function alumnoNew()
    {
        $sql= "INSERT INTO alumno(id, nombre, nacimiento) VALUES(null,'". $this->input->post('nombre') ."', '". $this->session->userdata('nacimiento') ."')";
        if ( $this->db->query($sql) ){
            return true;
        } else {
            return false;
        }
    }

Como podemos ver, la función se encarga de insertar en la BBDD los datos que vienen del formulario. En el caso que haya ido bien, retorna true, y de lo contrario retorna false.
A este alumno se le ha asignado la id incrementando la del anterior. Así cada alumno que vayamos insertando tendrá el 1, 2, 3… y así a cada alumno. Pero, cuando insertamos un alumno, qué id se le ha asignado al nuevo?

1
2
3
4
5
6
7
8
9
function alumnoNew()
    {
        $sql= "INSERT INTO alumno(id, nombre, nacimiento) VALUES(null,'". $this->input->post('nombre') ."', '". $this->session->userdata('nacimiento') ."')";
        if ( $this->db->query($sql) ){
            return $this->db->insert_id();;
        } else {
            return false;
        }
    }

Aquí hay un cambio. Si ha ido bien, devuelve $this->db->insert_id() que es la función del helper db que nos proporcionar el último id insertado.

Pues nada, tanto royo para solamente decir que con la función $this->db->insert_id() que proporciona el helper db podemos averiguar el último id insertado. Pero creo que con un pequeño ejemplo puede aclarar cosas a mucha gente.

Información relacionada

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*