array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.mysql-insert-id.php', 1 => 'mysql_insert_id', ), 'up' => array ( 0 => 'ref.mysql.php', 1 => 'Funções da MySQL', ), 'prev' => array ( 0 => 'function.mysql-info.php', 1 => 'mysql_info', ), 'next' => array ( 0 => 'function.mysql-list-dbs.php', 1 => 'mysql_list_dbs', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/mysql/functions/mysql-insert-id.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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:
Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior (normalmente INSERT).
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.
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.