Ir para conteúdo

POWERED BY:

Arquivado

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

Flaviano-guedes

[Resolvido] Recuperar valor da chave Primaria do registro inserid

Recommended Posts

Bem minha duvida é a seguinte como faço para recuperar o valor da chave primaria do registro que acabei de inserir no banco sendo que esta chave primaria é auto incremente.

 

Ex.:

Vamos supor que eu tenha a seguinte tabela no mysql

 

CREATE TABLE pessoa (

id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,

Nome VARCHAR(255) NULL,

);

 

Ai faço um insert

mysql_query('INSERT INTO pessoa (nome) VALUES (Joao)';

 

como recupero o id deste insert sendo nao da pra usar LAST_INSERT_ID() nem o mysql_last_insert_id

Poque se eu nao estiver enganado estes metodos retornam o ultimo id inserido na tabela.

mas vamos supor que eu tenha varias solicitações concorrentes realizando insert ai entre o intervalo do insert que estou querendo recuperar o id e a execução do LAST_INSERT_ID() seja realizadoo outro insert o resultado do LAST_INSERT_ID() nao seria o que eu buscava e sim o da outra inserção.

Não so se fui claro mais é isso ai minha duvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a função mysql_insert_id em uma variavel , e faz uma query de SELECT .. com a clausula dessa variavel ^_^

Sim.. entendi você dis assim select * from pessoa WHERE nome = o nome inserido ne.

 

mas supondo que exista clausulas iguais ai não daria certo não é?

 

Obg pela sua ajuda Andrey

Compartilhar este post


Link para o post
Compartilhar em outros sites

clausulas iguais ? :o , você fala 2 querys com mesma clausula ?

Desculpe Andrey acho q então nao tinha entendido sua reposta anterior :)

que foi

use a função mysql_insert_id em uma variavel , e faz uma query de SELECT .. com a clausula dessa variavel ^_^

 

Voce pode dar um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clausula WHERE eu não entendi foi a sua resposta .

 

basta você criar uma variavel de conexção mysql e identificar ela no insert_id ..

 

$link = mysql_connect(""); #Conexção com mysql .. isso você sabe ne ?? :D
$lastid = mysql_insert_id($link);
$sql = mysql_query("select * from `tabela` where `id` = '".$lastid."'");

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clausula WHERE eu não entendi foi a sua resposta .

 

basta você criar uma variavel de conexção mysql e identificar ela no insert_id ..

 

$link = mysql_connect(""); #Conexção com mysql .. isso você sabe ne ?? :D
$lastid = mysql_insert_id($link);
$sql = mysql_query("select * from `tabela` where `id` = '".$lastid."'");

^_^

Haa agora entndi :)

Vlw Andrey Knupp muito obrigado por sua ajuda

problema resolvido :)

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.