Forum und email

mysql_insert_id

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior

Descrição

int mysql_insert_id ([ resource $link_identifier ] )

Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta INSERT anterior.

Parâmetros

link_identifier

A conexão MySQL. se o identificador de conexão não for especificado, a ultima conexão aberta por mysql_connect() é assumida. Se uma conexão assim não for encontrada, ela irá tentar criar uma como se a função mysql_connect() fosse chamada sem argumentos. Se uma conexão não for encontrada ou estabelecida, um aviso de nível E_WARNING é gerado.

Valor Retornado

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.

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

Cuidado

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 certesa 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.