(PHP 4, PHP 5)
mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior
$link_identifier
] )Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta INSERT anterior.
link_identifier
The MySQL connection. If the
link identifier is not specified, the last link opened by
mysql_connect() is assumed. If no such link is found, it
will try to create one as if mysql_connect() was called
with no arguments. If no connection is found or established, an
E_WARNING
level error is generated.
O ID gerado para uma coluna AUTO_INCREMENT pela consulta
INSERT anterior em caso de sucesso, 0 se a consulta anterior
não gerou um valor AUTO_INCREMENT, ou FALSE
se
não foi estabelecida a conexão com o MySQL.
Exemplo #1 Exemplo mysql_insert_id()
<?php
$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());
?>
mysql_insert_id() converte o tipo de retorno nativo da API em C do MySQL mysql_insert_id() para um tipo long (chamado int no PHP). Se a sua coluna AUTO_INCREMENT for uma coluna do tipo BIGINT, o valor retornado por mysql_insert_id() será incorreto. Ao invés, use a função SQL interna do MySQL LAST_INSERT_ID() em uma consulta SQL.
Nota:
Devido a mysql_insert_id() agir sobre a última consulta realizada, tenha certeza de chamar mysql_insert_id() imediatamente após a consulta que gerou o valor.
Nota:
O valor da função SQL do MySQL LAST_INSERT_ID() sempre contém o valor AUTO_INCREMENT mais recentemente gerado, e não é reiniciado entre as consultas.