Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak jest z 'poprawnością' LAST_INSERT_ID() ?
Forum PHP.pl > Forum > Bazy danych > MySQL
FlooX
Witam,
Zazwyczaj w każdym moim dotychczasowym projekcie używałem niepewnie tej funkcji LAST_INSERT_ID() w obawie, ze poda mi 'nieprawidłowe' dane. Jednak były to małe aplikacje więc nie wnikałem w szegóły..

Teraz pracuje nad sklepem internetowym, gdzie błąd nie wchodzi w gre ponieważ to poważny projekt. Ponownie musze używać tej funkcji i teraz mam do Was pytanie..
Jeżeli na stronie jest bardzo duży ruch, ludzie co chwila się rejestrują, kupują produkty i takie tam bla bla bla.. to czy LAST_INSERT_ID() nie zawiedzie ?
Czy jeśli w jednym czasie dwóch ludzi kupi coś tzn - są wykonywane dwa zapytania do bazy -> wsadzanie zamówienie i odczytanie ostatniego ID. To czy jeśli w jednym czasie dwóch userów kupi produkt, zostanie wykonane zapytanie wsadzania bazy od jednego gostka i zaraz potym od drugiego, zanim od tego pierwszego zostanie wyciągnięte LAST_INSERT_ID() to czy wartość zwrócona przez tą funkcje będzie zawierała ID zamowienia od drugiego kolesia a zostanie przypisana do pierwszego ?

rozumiecie mnie tongue.gif ?
jak to z tym jest ? może sie takie coś zdarzyć ?

dodam, że używam obiektu mysqli do łączenia sie z bazą i jest on 'rzucany' po całej aplikacji, aż do zakonczenia wykonania skryptu i dopiero wtedy zamykany.



Z góry dzięki za wszelkie odpowiedzi,

Pozdrawiam
mdx
Nie masz się o co martwić, wystarczy czytać manuala smile.gif

http://dev.mysql.com/doc/refman/5.0/en/get...-unique-id.html
Cytat
For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client. It is not even changed if you update another AUTO_INCREMENT column with a non-magic value (that is, a value that is not NULL and not 0). Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed.
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.