Introducción
Es muy probable que en nuestra base de datos (MySQL en mi caso) tengamos una tabla con un campo de auto incremento o AUTO_INCREMENT.
Si trabajamos con estos campos y con CodeIgniter, puede que nos preguntemos ¿Cómo obtener el último ID que ha sido insertado en nuestra tabla? Este ID nos sirve, por ejemplo, al hacer relaciones.
Supongamos que tenemos una tabla de productos vendidos y otra de ventas. Si en los productos vendidos guardamos el ID de venta, primero necesitamos hacer la venta, luego obtener el último ID de la base de datos y, ya con esto, guardar el Id de venta en la tabla de productos vendidos.
Obtener último ID insertado
CodeIgniter, un framework de PHP, provee esto en un método muy simple. Recordemos que para usar la base de datos ya sea en nuestro modelo o controlador, primero debemos cargarla.
El código para obtener el último ID guardado es este:
<?php
$ultimoId = $this->db->insert_id();
Ejemplo de obtener el último ID de la base de datos
Para poner un ejemplo, aquí dejo un modelo en donde lo he estado utilizando. Básicamente guarda la información de la persona en la base de datos y devuelve el último ID insertado.
Notemos por favor que en el constructor es en donde cargamos la base de datos.
<?php
class Persona_model extends CI_Model{
function __construct()
{
$this->load->database();
}
public function nueva($persona){
$this->db->insert("personas", [
"nombre" => $persona->nombre,
"edad" => $persona->edad,
]);
return $this->db->insert_id();
}
}
?>
Con eso terminamos el tutorial de hoy. Recuerda que en este caso fue de la tabla personas, pero funciona igual para todas las tablas.
Esta bien esa consulta pero no haces referencia a la tabla en cuestion
en $ultimoId = $this->db->insert_id();
No, porque la función devuelve el último ID insertado sin importar la tabla