mysql_insert_id

(PHP 3, PHP 4 , PHP 5)

mysql_insert_id --  Retorna o ID gerado da operação INSERT anterior

Descrição

int mysql_insert_id ( [resource link_identifier])

mysql_insert_id() returna o ID gerado para um campo AUTO_INCREMENT pela ultima query INSERT usando o link_identifier dado. Se link_identifier não é especificado, a ultima conexão aberta é usada.

mysql_insert_id() retorna 0 se a query anterior não gerou um valor AUTO_INCREMENT. Se você precisa salvar o valor para depois, tenha certeza de chamar mysql_insert_id() imediatamente depois da query que gerou o valor.

Nota: O valor da função SQL do MySQL LAST_INSERT_ID() sempre contém o mais recente valor AUTO_INCREMENT gerado, e não é reiniciado entre as query.

Atenção

mysql_insert_id() converte o tipo de retorno nativo do MySQL C API mysql_insert_id() para o tipo long (nomeado int no PHP). Se a sua coluna AUTO_INCREMENT tem um tipo BIGINT, o valor retornado por mysql_insert_id() será incorreto. Ao invés, use a função interna SQL do MySQL LAST_INSERT_ID() numa query SQL.

Exemplo 1. Exemplo mysql_insert_id

<?php
    mysql_connect
("localhost", "mysql_user", "mysql_password") or
        die(
"Não pude conectar: " . mysql_error());
    
mysql_select_db("mydb");

    
mysql_query("INSERT INTO mytable (product) values ('kossu')");
    
printf ("O ultimo registro incluído tem id %d\n", mysql_insert_id());
?>

Veja também mysql_query().