[Intrebare] last_insert_id()

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

dlsmoker
Average Member
Mesaje: 64
Membru din: Vin Noi 04, 2011 5:43 pm

[Intrebare] last_insert_id()

Mesajde dlsmoker » Lun Mar 19, 2012 4:58 pm

Am doua tabele:
'users'
-> id auto-increment primary key,
->username,
->email

'info'
->id auto-increment primary key,
->user_id foreign key references users(id),
->address,
->city

Printrun form vreau sa trimit 2 date in tabela 'users', adica username si email, si 2 date in tabela 'info', adica adresa si orasu.
Odata ce formu a fost completat si trimis, info.user_id trebuie sa aiba aceiasi valoare ca si users.id. Am folosit last_insert_id() dar am observat ca rezulta egal cu id-ul tabelei info si nu users. Cum fac ca daca un nou user trimite formularu si acesta are id 5, in tabela info in campul user_id tot 5 sa intre chiar daca aici id-ul este divers? Se poate sau trebuie sa scot id-ul AI din info?

Vroiam sa stiu daca convine sa declar o variabila dupa primul query unde sa pastrez valoarea last_insert_id(), dar cineva spunea ca daca cumva este vreo problema cu server-u, atunci acea valoare nu mai este de incredere.

Sper ca s-a inteles problema. Multumesc



bsorin
Junior Member
Mesaje: 41
Membru din: Dum Oct 08, 2006 9:05 pm
Localitate: Bucuresti
Contact:

Mesajde bsorin » Lun Mar 19, 2012 5:10 pm

depinde în ce ordine faci insert-urile. introdu întâi în users, după care introduci în info:

mysql_query("inert into users set username = '{$username}', email = '{$email}'");

mysql_query("insert into info set user_id ='" . mysql_insert_id() . "', address = '{$adresa}', city = '{$city}'");

dlsmoker
Average Member
Mesaje: 64
Membru din: Vin Noi 04, 2011 5:43 pm

Mesajde dlsmoker » Lun Mar 19, 2012 6:24 pm


MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Mesajde MarPlo » Lun Mar 19, 2012 7:29 pm

Salut
Daca vrei ca in tabelul 'info' sa foloseste id-ul din "users", la "info" trebuie fara auto_increment, si adaugi direct valoarea data de mysql_insert_id() , dupa Insert in "users".
- mysql_insert_id() returneaza valoarea returnata de ultima comanda Insert, efectuata inainte de interogarea in care-l folosesti.
Cursuri gratuite: | | | |


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 9 vizitatori