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. |
|
|
|
![]() |
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. |
|
|
|
Indeo Transakcje 4.10.2011, 09:02:28
MrMag Przyznam, ze nigdy nie uzywalem pconnect i nie wie... 4.10.2011, 10:08:40
MrMag Mysle, ze odpowiedni poziom izolacji zapytan rozwi... 4.10.2011, 11:40:57
Crozin Nie powinieneś robić tego w ten sposób. Dodaj sobi... 4.10.2011, 11:47:02
Indeo Heh doszedłem do takich samych wniosków :/ ale coś... 4.10.2011, 12:28:59 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 10:24 |