zimiro 0 Denunciar post Postado Novembro 7, 2013 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
Gabriel Heming 766 Denunciar post Postado Novembro 7, 2013 Presumindo que esteja usando MySQL, poderá utilizar a função, abaixo, da PDO.http://php.net/manual/en/pdo.lastinsertid.phpNã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
Leco RP 6 Denunciar post Postado Novembro 7, 2013 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
Keven Jesus_164006 39 Denunciar post Postado Novembro 7, 2013 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
Gabriel Heming 766 Denunciar post Postado Novembro 7, 2013 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