Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zimiro

resgate de um insert

Recommended Posts

como resgatar o ID do insert que acabou de ser inserido, sem misturar com vários insert mesmo tempo

 

exemplo se 10 pessoas acabarão de fazer um insert mesmo tempo cada um tem q retornar seu id corretamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Presumindo que esteja usando MySQL, poderá utilizar a função, abaixo, da PDO.

http://php.net/manual/en/pdo.lastinsertid.php

Não funciona para todos os SGBDs, mas para o MySQL vai funcionar.

Outra solução é adaptar uma solução semelhante ao nextval do PostgreSQL através de funções no MySQL.
Emulating nextval() function to get sequence in MySQL

 

É uma boa solução, inclusive já utilizei para alguns sistemas. Vai depender de como modelou e do que deseja utilizar no seu sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Considerando que esteja utilizando o MySQL, logo após o INSERT você coloca algo assim:

$idusuario = mysql_insert_id(); 

Se utilizar PDO:

$idusuario = $conn->lastInsertId();

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
INSERT INTO tabela (a,b,c) VALUES ('$a','$b','$c')

 

 

recuperando ultimo id

 

 

SELECT MAX(id) AS id FROM tabela

 

 

só fazer fetch array desse select max id ai e puxar indice ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente Keven, sua solução sofre com um problema parecido com a Condição de Corrida (pra não falar o mesmo, pois ela trata de escalonamento de processos).

 

Pode funcionar em um determinado espaço de tempo, em sistemas com poucos acessos, mas o fator tempo x acesso irá causar uma falha. Pois o "estado compartilhado", dos processos, seria o último ID inserido no sistema. Uma vez que não se pode garantir que você realmente selecione o último ID antes que um novo seja inserido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.