¿Cómo obtengo el último ID insertado de una tabla MySQL en PHP?
Tengo una tabla en la que con frecuencia se insertan nuevos datos. Necesito obtener la última identificación de la tabla. ¿Cómo puedo hacer esto?
¿Es parecido a SELECT MAX(id) FROM table
?
Si estás usando PDO, usa PDO::lastInsertId
.
Si estás usando Mysqli, usa mysqli::$insert_id
.
Si todavía estás usando Mysql:
Por favor, no utilice
mysql_*
funciones en código nuevo . Ya no se mantienen y están oficialmente en desuso . ¿ Ves el cuadro rojo ? En su lugar, obtenga información sobre declaraciones preparadas y utilice PDO o MySQLi ; este artículo le ayudará a decidir cuál. Si eliges DOP, aquí tienes un buen tutorial .
Pero si es necesario, utilice mysql_insert_id
.
hay una función para saber cuál fue la última identificación insertada en la conexión actual
mysql_query('INSERT INTO FOO(a) VALUES(\'b\')');
$id = mysql_insert_id();
Además, usar max es una mala idea porque podría generar problemas si su código se usa al mismo tiempo en dos sesiones diferentes.
Esa función se llama mysql_insert_id
Con DOP :
$pdo->lastInsertId();
Con Mysqli :
$mysqli->insert_id;
Por favor, no utilice mysql_*
funciones en código nuevo . Ya no se mantienen y están oficialmente en desuso . ¿ Ves el cuadro rojo ? En su lugar, obtenga información sobre declaraciones preparadas y utilice PDO o MySQLi ; este artículo le ayudará a decidir cuál. Si eliges DOP, aquí tienes un buen tutorial .
Está bien. También puedes usar LAST_INSERT_ID()
Lo que escribió le daría lo mejor, id
suponiendo que fueran únicos y se incrementaran automáticamente, lo cual estaría bien, suponiendo que esté de acuerdo con generar problemas de concurrencia.
Dado que está utilizando MySQL como base de datos, existe una función específica LAST_INSERT_ID()
que solo funciona en la conexión actual que realizó la inserción.
PHP también ofrece una función específica para eso llamada mysql_insert_id
.