mysql_insert_id
(PHP 4, PHP 5)
mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior
Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:
Descrição
Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior (normalmente INSERT).
Parâmetros
-
link_identifier
A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível
E_WARNING
será gerado.
Valor Retornado
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.
Exemplos
Example #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());
?>
Notas
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.
Note:
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.
Note:
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.
Veja Também
- mysql_query() - Envia uma consulta MySQL
- mysql_info() - Obtém informação sobre a consulta mais recente