Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
//Qual a lógica de colocar o valor de LAST_INSERT_ID() em uma variável?
$variavel = mysql_query("SELECT LAST_INSERT_ID();");
//Assim
echo "Variável: ".$variavel;
//Isso colocado logo após a query que inseri os dados.
Obrigado.
Rodney Peixoto.
Vamos lá meu camarada!!
A função do MySQL LAST_INSERT_ID() retona o última inteiro criado para uma coluna auto_increment de uma tabela. Este inteiro está disponível no cache de memória que o MySQL utiliza para armazenar os valores da coluna auto_increment, assim gerando a sequência. Bom, para que você pegue o útlimo valor que foi gerado para um registro inserido em uma tabela A (exemplo), faça da seguinte forma:
$sql = "SELECT LAST_INSERT_ID()"; // consulta
$con = mysql_query($sql) or die ("PROBLEMAS COM A CONSULTA; ".mysql_error()); // enviamos a consulta ao SGBD
$res = mysql_fetch_row($con); // recuperamos o que for retornado em um array - $res
echo $res[0];
Lembrando que a fórumla para uma coluna auto_increment (que somente poderá ser criada em uma (1) coluna por tabela e esta deve ser indexada como KEY, UNIQUE ou PRIMARY KEY), será sempre *MAX(auto_increment_column) + 1 WHERE prefix=given-prefix*.
Referência completa, MySQL Reference Manual: http://dev.mysql.com/doc/refman/5.0/en/exa...-increment.html
Teste aí e nos dê um retorno!! Abraço... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
>
$sql = "SELECT LAST_INSERT_ID()"; // consulta
$con = mysql_query($sql) or die ("PROBLEMAS COM A CONSULTA; ".mysql_error()); // enviamos a consulta ao SGBD
$res = mysql_fetch_row($con); // recuperamos o que for retornado em um array - $res
echo $res[0];
Depois do insert, coloquei isso logo abaixo, e puxei o id, com o id, já criei a pasta onde ficará todas as fotos do cliente, e ficou certinho.
era isso que procurava..
Tópico Fechado.
Rodney Peixoto.
http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Não consigo manipular
select last_insert_id();
onde eu coloco o nome da tabela? como o servidor qual tabela eu quero recuperar o id (ou seja lá qual for o nome da coluna)?
tentei algo como:
select last_insert_id(tabela.coluna);
select last_insert_id(tabela);
select last_insert_id() from tabela;
e nada, alguém tem alguma coisa a dizer?SELECT MAX(id) FROM table
Resolve?
Ou de uma olhada aqui
Se estiver usando PHP tem funções como mysql_insert_id()
Atenção
mysql_insert_id () : Se a sua coluna AUTO_INCREMENT tem um tipo de coluna BIGINT (64 bits) a conversão pode resultar em um valor incorreto. Em vez disso, use a função SQL interna do MySQL LAST_INSERT_ID () em uma consulta SQL. Para mais informações sobre os valores máximos inteiros do PHP, veja o inteiro documentação.
fonte: http://php.net/manual/en/function.mysql-insert-id.php
As vezes você vai precisar atualizar uma segunda tabela, com o ID de auto-increment da tabela onde você fez o INSERT. Daí ao invés de você fazer oooooutra consulta, procurando pelos dados que você ACABOU de colocar na database, e daí pegar o ID que a database criou, você vai com LAST_INSERT_ID()