segunda-feira, 17 de novembro de 2008

Recuperar valor do auto incremento após efetuar INSERT com PHP e MySQL

Saudações a todos,

As vezes quando temos uma tabela no banco de dados com um campo definido como AUTO_INCREMENT, precisamos recuperar esse valor logo após o INSERT (por diversos motivos).

Para isso não basta fazer uma consulta para recuperar o maior valor (MAX) do campo na tabela pois uma outra pessoa pode já ter feito um INSERT após o seu e o valor que o SQL retornará estará incorreto.

Para solucionar esse problema no PHP é bem fácil, utilizamos a função mysql_insert_id().

Ela retorna o ID gerado por um campo de auto incremento do consulta INSERT anterior.

Por exemplo, vou inserir um registro em uma tabela chamada pedidos e, após isso, exibir qual foi o número do pedido gerado:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

if (!$link) {
die('Não foi possível conectar: ' . mysql_error());
}

mysql_select_db('mydb');

$sql = 'INSERT INTO pedidos (item, valor) VALUES (2, 200.25)';

mysql_query($sql);

echo 'Número do pedido: ' . mysql_insert_id();
?>

Espero ter ajudado, qualquer dúvida poste um comentário ou me envie um e-mail (deixei meu e-mail disponível no meu perfil do blog).

Abraços.

Links relacionados:

0 comentários: