Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak jest z 'poprawnością' LAST_INSERT_ID() ?
FlooX
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
mdx
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 14:26