(PHP 4, PHP 5)
mysql_insert_id — Obtiene el ID generado en la última consulta
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y P+F relacionadas para más información. Las alternativas a esta función incluyen:
$link_identifier
= NULL
] )Recupera el ID generado por la consulta anterior (normalmente INSERT) para una columna AUTO_INCREMENT.
link_identifier
La conexión MySQL. Si el
identificador de enlace no se especifica, el último enlace abierto por
mysql_connect() es asumido. Si no se encuentra dicho enlace, la
función intentará establecer un nuevo enlace como si mysql_connect() fuese invocado
sin parámetros. Si no se encuentra o establece una conexión, un error de nivel
E_WARNING
es generado.
El ID generado por la consulta anterior para una columna AUTO_INCREMENT
en caso de éxito, 0 si la consulta
anterior no genera un valor AUTO_INCREMENT, o FALSE
si
no se estableció una conexión MySQL.
Ejemplo #1 Ejemplo de mysql_insert_id()
<?php
$enlace = mysql_connect('localhost', 'usuario_mysql', 'contraseña_mysql');
if (!$enlace) {
die('No se pudo conectar: ' . mysql_error());
}
mysql_select_db('mibd');
mysql_query("INSERT INTO mitabla (producto) values ('kossu')");
printf("El último registro insertado tiene el id %d\n", mysql_insert_id());
?>
mysql_insert_id() convertirá el tipo devuelto de la función nativa mysql_insert_id() de la API de C de MySQL a un tipo long (llamado int en PHP). Si la columna AUTO_INCREMENT tiene un tipo BIGINT (64 bits) la conversión puede resultar en un valor incorrecto. En su lugar, use la función de SQL interna LAST_INSERT_ID() de MySQL en una consulta SQL. Para más información sobre los valores máximos de tipo integer, por favor vea la documentación de integer.
Nota:
Como mysql_insert_id() actúa en la última consulta realizada, asegúrese de llamar a mysql_insert_id() inmediatamente después de la consulta que genera el valor.
Nota:
El valor de la función de SQL LAST_INSERT_ID() de MySQL siempre contiene el valor AUTO_INCREMENT generado más recientientemente, y no se restablece entre consultas.