Nieprawidłowa wartość zwracana przez mysql_insert_id()

0

Sprawa wygląda tak. Tworze sobie aplikację internetową (php i MYSQL). Mam pewną metodę, która najpierw wstawia do tabeli jeden rekord, w którym głównym kluczem jest ID. Następnie, ta sama metoda wstawia do innej tabeli kilka rekordów, ale potrzebuje tego samego ID. Korzystam z "mysql_insert_id()", dzięki czemu wszystko działa okej. Ale co jeśli, w wyniku tego, że kilku użytkowników aplikacje jednocześnie będzie wykonywać tę samą czynność? Czy teorytycznie jest możliwe, że "mysql_insert_id" wstawi do tej drugiej tabeli nieodpowiednie ID? Czy MYSQL działa na tyle szybko, że jest to nierealne? A jeśli jest to realne to jak się przed tym zabezieczyć. Myślę, że nie ja pierwszy trafiłem na taki problem...

Hmmm.... Bo byc może opłaca się zamiast robic to przez PHP, robic to od razu w MYSQL poprzez LAST_INSERT_ID()??

0

Nieważne, czy zrobisz to przez mysql_insert_id(), czy przez LAST_INSERT_ID(). Wg mnie mysql_insert_d jest tylko "aliasem" dla odpowiedniej funkcji MySQL-a. Czyli obie zadziałają tak samo. Ale zadziałają dobrze, bo pobierają to id z własnej transakcji.

0

Table MyISAM w MySQL sa blokowane na czas wstawienia danego rekordu. Tzn., ze na czas wstawiania danego rekordu, MySQL blokuje dana tabele i odblokowuje ja dopiero po wstawieniu danego rekordu. W tym czasie inne procesy ktore operuja na danej tabeli, sa wstrzymane.

0
Adam Boduch napisał(a)

Table MyISAM w MySQL sa blokowane na czas wstawienia danego rekordu. Tzn., ze na czas wstawiania danego rekordu, MySQL blokuje dana tabele i odblokowuje ja dopiero po wstawieniu danego rekordu. W tym czasie inne procesy ktore operuja na danej tabeli, sa wstrzymane.

Słyszałem już o tym, tylko, że tutaj są to tak jakby dwa oddzielne Inserty...

0

O boshe przecież ci już wytłumaczył. Przeczytałeś tylko ostatniego posta?

Marcin.Miga napisał(a)

[...] Ale zadziałają dobrze, bo pobierają to id z własnej transakcji.

0
flogum napisał(a)

O boshe przecież ci już wytłumaczył. Przeczytałeś tylko ostatniego posta?

Marcin.Miga napisał(a)

[...] Ale zadziałają dobrze, bo pobierają to id z własnej transakcji.

Ok, spokojnie. Już rozumiem.
Dziękuje za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1