Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy INSERT cos zwraca?
Forum PHP.pl > Forum > Bazy danych > MySQL
robert1414
witam

mam tabele powiedzmy

test
________
-id (int, autoincrement)
-nazwa (text)

i teraz chce przez php wpisać cos do niej

INSERT INTO `test` ( `id` , `nazwa` ) VALUES ('', 'jakis tekst')

i dodaje wpis o takim id jaki miał wolny w kolejności

i jakbym teraz chciał dodac do innej tabeli

INSERT INTO `test1` ( `id_2` , `nazwa2` ) VALUES ('".$id."', 'jakis tekst2')

i tutaj chciałbym dodac wiersz ale o takim id jaki dodał sie w autoincrement w poprzednim wpisie

wiem ze moge zrobić insert pozniej select ..ORDER BY id DESC LIMIT 1 wyciągnąc id i wpisać do drugiego inserta ale jeśli w miedzyczasie ktos inny będzie robił wpis to już ten select może pobrać inne id

jest jakies wyjście z tego?
spenalzo
mysql_insert_id
mhs
Możesz to uzyskać na dwa sposoby:
- na poziomie bazy danych wykonując zapytanie
  1. SELECT LAST INSTERT ID

lub
- na poziomie aplikacji - jeżeli korzystasz z funkcji mysql_* to funkcją mysql_insert_id()

Jeżeli korzystasz z warstwy abstrakcji dostępu do bazy danych - szukaj w dokumentacji konkretnego systemu.

EDIT:

ad 1) oczywiście:

  1. SELECT LAST_INSERT_ID();
SongoQ
  1. SELECT LAST_INSERT_ID();

Juz nie pamietam co to zwraca ostatnie ID jakie jest w incremencie czy ostatnie id sesji. Bo jesli to 1 to dalej to nie rozwiazuje Twojego problemu i zostaje Ci wywolanie funkcji php. Ale najlepiej sprawdzic w dokumentacji.
mhs
Z testów które dość dawno robiłem (równocześnie uruchomione dwie konsole) oraz na podstawie informacji z dokumentacji SELECT LAST_INSERT_ID() zwraca ostatni wygenerowany numer ID w obrębie danej sesji użytkownika.
SongoQ
Czyli spawa prosta smile.gif @robert1414 masz 2 mozliwosci jedna ktora podal @spenalzo i 2 ktora podal @mhz do wyboru do koloru tongue.gif
robert1414
ok dzieki za pomoc mysql_insert_id wydaje sie fajnym rozwiazaniem. Nie znałem go wcześniej.

Pozdrawiam
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.