Obtener con PHP el último ID insertado en MySQL: LAST_INSERT_ID()

A veces necesitamos conocer el último ID que acabamos de insertar en una tabla de la base de datos, por ejemplo si estamos trabajando con dos tablas relacionadas y en la segunda debemos insertar el ID del elemento de la primera. Si además este ID es un AUTO_INCREMENT, la solución más rápida, sencilla y elegante para recuperar ese dato es realizar la siguiente consulta:

SELECT LAST_INSERT_ID() FROM tabla

La función LAST_INSERT_ID() nos devuelve el último ID insertado en la conexión actual, es decir, después de un mysql_close() ese valor se pierde y nos devolverá 0. Y para guardar esta consulta en una variable en PHP:

$query = "SELECT LAST_INSERT_ID() FROM tabla";
$last_id = mysql_result( mysql_query( $query ), 0, 0 );

En PHP también tenemos una función que hace lo mismo…

mysql_insert_id( $link )

…pero yo suelo utilizar la de MySQL, manías que tiene uno :) y por cierto, los chicos del framework CakePHP también.

También podéis consultar la documentación oficial MySQL al respecto.


También puede interesarte:


Tags: , , ,

Leave a Comment