![]() |
![]() |
![]()
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 ![]() 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 |
|
|
![]() |
![]()
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
![]() 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
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:29 |