Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP a modyfikacje rekordu w mysql
grzehotnik
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.01.2009

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


Witam mam pytanie odnośnie modyfikacji rekordów w mysql za pomocą PHP.
Jeśli robię skrypt, który modyfikuje powiedzmy opis jakiegoś produktu w tabeli
i nadaję prawo do modyfikacji kilku użytkownikom, co się dzieje jeśli dwie lub więcej osób
będą chciały zmodyfikować dokładnie ten sam rekord w dokładnie tym samym czasie?

Czy istnieje funkcja w PHP, która pozwala zablokować modyfikowany rekord?

Jak obejść taką sytuacje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ddiceman
post
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Jezeli jest tak, jak mowisz, to oczywiscie masz racje. Z drugiej zas strony na podstawie
Cytat
zmodyfikować dokładnie ten sam rekord w dokładnie tym samym czasie

oraz
Cytat
Podczas zapisu do bazy za pomocą jakiejś funkcji(nie pamiętam nazwy) blokuje dany rekord,
a po zapisie odblokowuje go.

wnioskuje, ze jednak chodzilo o blokowanie danych, tak by naraz tylko jeden proces mogl zmodyfikowac wierz/tabele co nie jest oczywistoscia. Fakt, ze zapytania przychodza kolejno nie implukuje tego, ze jedno jest wykonywane nim skonczy sie drugie - sytuacje taka mozesz zobaczyc, gdy nie zalozysz na otwarty plik (fopen()) blokady do zapisu (flock()) i sprobujesz zapisywac do pliku jednoczesnie, nieco dluzszy ciag znakow, ale o roznej dlugosci. Najprawdopodobniej wtedy plik ulegnie uszkodzeniu bowiem system plikow standardowo nie traktuje operacji zapisu jako atomowej i mysle, to wlasnie o to bylo pytanie. MySQL zapewnia spojnosc danych tylko dlatego, ze wlasnie naklada blokady na wiersz/tabele (nie zas dlatego, ze kolejkuje zapytania)
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: 3.10.2025 - 20:58