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: 154 Pomógł: 5 Dołączył: 24.02.2004 Ostrzeżenie: (0%)
|
Mysle, ze odpowiedni poziom izolacji zapytan rozwiaze problem z jednoczesnym pobieraniem i updatowaniem przez rozne procesy. Gorzej jesli jakies dane maja byc wczytane do formularza i moga sobie wisiec przez x minut a nastepnie beda zatwierdzone. Tutaj chyba nie obejdzie sie bez zmiany statusu z jakims czasem rezerwacji rekordu tabeli na wylacznosc. To juz jednak jest logika biznesowa. Rozumiem teraz o co chodzilo wczesniej. Ja bym tego na transakcje nie zrzucal nawet jesli sie da. Kiedy mialby byc zrobiony commit? Do tego dane po edycji by byly... nieaktualne bo de facto niezacommitowane.
Ten post edytował MrMag 4.10.2011, 11:41:40 |
|
|
|
Indeo Transakcje 4.10.2011, 09:02:28
MrMag Przyznam, ze nigdy nie uzywalem pconnect i nie wie... 4.10.2011, 10:08:40
Indeo Nie wiem, czy to logika biznesowa, dla mnie to zag... 4.10.2011, 11:28:55
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: 23.12.2025 - 12:59 |