(PHP 4, PHP 5)
mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior
Esta extensão está obsoleta desde o PHP 5.5.0 e foi removida no PHP 7.0.0. Utilize MySQLi ou PDO_MySQL alternativamente. Veja também MySQL: escolhendo uma API e FAQs relacionadas para mais informações. Alternativas a essa função incluem:
$link_identifier
= NULL
] )Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior (normalmente INSERT).
link_identifier
A conexão MySQL. Se o
link identifier não for especificado, o último link aberto por
mysql_connect() é utilizado. Se uma conexão anterior não existir
será tentado criar um a partir de uma chadama a mysql_connect()
sem nenhum argumento. Se nenhuma conexão for encontrada ou estabelecida, um erro nível
E_WARNING
é gerado.
O ID gerado para uma coluna AUTO_INCREMENT pela consulta
anterior em caso de sucesso, 0 se a consulta anterior
não gerou um valor AUTO_INCREMENT, ou FALSE
se
não foi estabelecido 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() irá converter o tipo de retorno da API nativa 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 (64 bits), a conversão pode resultar em um valor incorreto. Ao invés disto, use a função LAST_INSERT_ID() interna do MySQL em uma consulta SQL. Para mais informações sobre valores máximos de inteiros do PHP, visite a documentação integer.
Nota:
Devido 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.