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.

Artículos relacionados

CodeIgniter – Debug e información de forma s... CodeIgniter proporciona una clase que facilita la programación. Activando esta clase desde nuestro controlador, en el momento de mostrar la vista, lis...
Integrar Boilerplate en CodeIgniter Sencillo videotutorial donde explica cómo integrar Boilerplate a un nuevo proyecto PHP creado sobre CodeIgniter. Utiliza como editor Eclipse y crea un...
Codeigniter redireccionar toda la web a SSL Os indico como redireccionar en una web creada con Codeigniter para que siempra, escriban lo que escriban en la barra de dirección accedan a nuestra w...
CodeIgniter – Quitar index.php de la url Para poder trabajar bien las url amigables en CodeIgniter, debemos quitar el index.php que sale por defecto cuando navegas por la aplicación. Hay que ...

Un comentario

Deja un comentario

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

*