(PHP 4, PHP 5)
mysql_insert_id — Obtiene el ID generado en la última consulta
Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y sus P+F relacionadas para más información. Alternatives to this function include:
$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 no
se especifica el identificador de enlace, se asume el último enlace abierto
por mysql_connect(). Si no se encuentra este enlace, se
intentará crear un nuevo enlace como si mysql_connect() hubiese sido invocada
sin argumentos. Si no se encuentra o establece ninguna conexión, se genera un error
de nivel E_WARNING
.
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.