Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak jest z 'poprawnością' LAST_INSERT_ID() ?
FlooX
post 16.09.2008, 17:34:07
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.06.2008
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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

Ten post edytował FlooX 16.09.2008, 17:35:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
mdx
post 16.09.2008, 19:03:39
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.03.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


--------------------
MDX.PL
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:29