mysql_insert_id
mysql_insert_id -- Devuelve el identificador generado en la última llamada a INSERT
Descripción
int mysql_insert_id ( [int identificador_de_enlace] )
mysql_insert_id() devuelve el identificador generado para un campo de tipo AUTO_INCREMENTED. Se devolverá el identificador generado por el último INSERT para el identificador_de_enlace. Si no se específica el identificador_de_enlace, se asume por defecto el último enlace abierto.
mysql_insert_id() regresa 0 si la consulta previa no generó un valor AUTO_INCREMENT. Si necesita guardar el valor para un uso posterior, asegurese de llamar mysql_insert_id() inmediatamente después de la consulta que generó el valor.
Nota: El valor de la función SQL de MYSQL LAST_INSERT_ID() siempre contiene el valor AUTO_INCREMENT má recientemente generado, y no se pierde su valor entre consultas.
Aviso
mysql_insert_id() convierte el tipo de la función nativa de MySQL en el API de C mysql_insert_id() a un tipo de long (llamada int en PHP). Si tu columna AUTO_INCREMENT tiene un tipo BIGINT, el valor regresado por mysql_insert_id() será incorrecto. En ese caso, usa la función interna LAST_INSERT_ID() de SQL en MySQL en una consulta SQL.
EJEMPLO
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>


Meneame
del.icio.us
Hola!
Estaba buscando información sobre mysql_insert_id() y llegué a tu blog.
No sé si alguien ya tuvo problemas con esto, pero al usar mysql_insert_id() se me crean filas vacías en la tabla de donde extraigo el último id. ¿alguien sabe a qué se debeo esto y cómo se soluciona?
¡Gracias!
Juan — 19-10-2007 - 15:32:22 GMT 5