Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Transakcje
Indeo
post
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

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


Mm pytanie dotyczące obsługi transakcji w mysql. Do tej pory korzystałem z nich czasem w ramach pojedynczego wywołania skryptu php na zasadzie:
1. połącz z bazą
2. START TRANSACTION
3. seria selectów i update'ów
4. jak wszystko ok to COMMIT

a co jeśli chciałbym aby transakcja była podtrzymywana w czasie kilku wywołań skryptu php? czy jest to możliwe? Chodzi o to żeby po zakończeniu skryptu php połączenie nie było zrywane z nastepstwem ROLLBACK tylko aby kolejne wywołanie skryptu mogło nadal działać w ramach tej samej transakcji. Funkcja mysql_pconnect() ma niby podtrzymywać połączenie z bazą - jak dla mnie na razie działa identycznie jak mysql_connect(). Może trzeba coś skonfigurować? Oczywiscie tabele innodb.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Indeo
post
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

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


Nie wiem, czy to logika biznesowa, dla mnie to zagadnienie czysto bazodanowe. Chodzi mi o zachowanie spójności danych modyfikowanych przez różnych użytkowników. Mam rekord w tabeli. Nagle dwóch uzytkowników wybiera z niego dane i wyświetla w formularzu edycji.
Jeden zapisuje formularz - następuje update tabeli, a zaraz potem drugi uzytkownik robi to samo i dane pierwszego użytkownika w nalepszym wypadku zostają nadpisane przez drugiego. Gdyby pobraniu rekordu przez pierwszego usera towarzyszyło rozpoczecie transakcji rekord zostałby zablokowany dla pozostałych dopóki uzytkownik nie zwróci danych z formularza i nie nastapi COMMIT albo ROLLBACK . Dopiero wtedy inni uzytkownicy będą mić dostep do tego rekordu ale ujrzą aktualne. Tak dzieje się w aplikacjach klienckich baz danych. Mniejsza o to czy zrobić to samymi transakcjami czy poprzez "lock tables" ale wazne aby pomiędzy poszczególnymi przeładowaniami skryptu została zachowana integralna całość procesu. Po prostu uzytkownicy nadpisują sobie wzajemnie dane do których mają dostęp.
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: 27.12.2025 - 10:24