Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak wyciagnac id z wlasnie wykonanego inse
Forum PHP.pl > Forum > Bazy danych > MySQL
sobstel
dodaje rekord do tabeli gdzie ID_1 jest kluczem glownym (wystepuje autoinkrementacja). za chwile chce dodac kolejny rekord (powiazany z tym pierwszym) do innej tabeli powiazanej relacja z tabela pierwsza poprzez ID_1. probelm jest taki ze nie znam ID_1, ktory zostal przydzielony automatycznie. jak rozwiazac ten problem? czy mozna jakos poznac ID wlasnie przydzielone przez mysqla?

np.

struktura
tabela1 : id INTEGER PRIMARY KEY, nazwisko VARCHAR(30)
tabela2 : imie VARCHAR (30), id INTEGER FOREIGN KEY

INSERT INTO tabela1(nazwisko) VALUES ('Kowalski');

i teraz chcialbym od razu dodac imie (zaznaczam, to tylko prosty przyklad, aby zobrazowac problem!!)

INSERT INTO tabela2(imie,id) VALUES ('Jan', I TU!!! SKAD TO WZIAC?questionmark.gif)
Kinool
moze [manual:c3ec29dec0]mysql_insert_id[/manual:c3ec29dec0] coprawda to php a nie MySQL

no ale sam MySQL tez chyba ma podobna funkcje
sobstel
dokładnie o to chodziło. że też wcześniej na to nie wpadłem. dzięki!
Yarecki
Spojrzalem do manuala i nie jestem pewny, czy mysql_insert_id zwraca id ostatniego inserta dla danego polaczenia, czy ogolnie id ostatniego wykonanego inserta.

Przykladzik, zeby wszyscy wiedzieli o czym pisze. Mamy usera a, ktory wpisuje swoje dane. Mamy usera b, ktory w tym samym czasie wpisuje swoje dane. Pytanie jest takie czy jesli user b wpisze sie zaraz po userze a to czy userowi a mysql_insert_id zwroci id jego wpisu czy usera b ?
BzikOS
Cytat
Funkcja zwróci ID wygenerowane automatycznie przez ostatnią operację INSERT używającą podanego identyfikatora_połączenia. Jeżeli identyfikator_połączenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie. [/manual]

Jeżeli nie podasz identyfikatora to po prostu z ostatniego INSERTA. A co do 2 użytkowników - przecież to są oddzielne połączenia, więc nie ma prawa zwrócić ID wygenerowane przez tego drugiego usera.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.