Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySQL LAST_INSERT_ID(), Pytanie co do pobierania id rekordu
ksenonlogin
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Witam

Od jakiegoś czasu nurtuje mnie pewna sprawa z funkcją mysql_insert_id(). Czy gdy pobieram id nowo wstawionego prze zemnie rekordu, to mam pewność że jest to id tego rekordu?

Może dokładnie na takiej sytuacji:

Załóżmy że użytkownik "A" wstawia nowy rekord do tabeli (niech będzie że auto_increment nadał rekordowi id: "2") i pobiera id tego rekordu za pomocą funkcji: mysql_insert_id(), funkcja ta zwraca wtedy id rekordu: "2",
a w tym samym czasie wykonuje tą samą czynność użytkownik "B" który wstawił rekord (z nadanym id: "3"), a więc chodzi mi o to:

Czy dane sytuacja może się skrzyżować?, w momencie gdy użytkownik "A" wstawia rekord, a potem pobiera numer id powstaje jakaś luka czasowa między tymi czynnościami, i gdy użytkownik "B" wstawi rekord w tym czasie (w czasie tej przerwy między wstawieniem a pobraniem id), to użytkownik "A" otrzyma id swojego rekordu czy id rekordu innego użytkownika (użytkownika "B")?

Jeżeli taka sytuacja może się zdarzyć to proszę o podanie sposobu który pozwoli tego uniknąć.



Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


Z tego co ja sprawdzalem, to jesli nie podasz parametru do mysql_insert_id to uzyje ona ostatniego TWOJEGO polaczenia w skrypcie.

Tzn w 1 skrypcie mozesz miec np 5 roznych ID_polaczen do bazy i jesli zrobisz na kazdym inserta i bedziesz chcial odczytac INSERT_ID podajac polaczenie to poda Ci dla niego. Jesli natomiast nic nie podasz dostaniesz INSERT_ID z ostatniego TWOJEGO polaczenia.

A jak nie bylo zadnego TWOJEGO polaczenia to sie "wywali";)
Go to the top of the page
+Quote Post
croc
post
Post #3





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Cytat(maly_swd @ 4.11.2011, 12:07:31 ) *
Z tego co ja sprawdzalem, to jesli nie podasz parametru do mysql_insert_id to uzyje ona ostatniego TWOJEGO polaczenia w skrypcie.

Nie trzeba sprawdzać, w manualu jest wszystko wyjaśnione.
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 10:10