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
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nie powinieneś robić tego w ten sposób. Dodaj sobie w bazie danych kolumnę z czasem ostatniej aktualizacji. Następnie w formularzu edycji wrzuć do ukrytego pola czy tam jako zmienną sesynją tą datę - tak by była ona przesłana do skryptu odpowiedzialnego za wykonanie zapytania UPDATE. Na koniec w skrypcie modyfikującym bazę danych dodaj na początku sprawdzenie czy przesłana data jest równa tej w bazie danych. Jeśli tak, oznacza to że rekord nie został zmodyfikowany w czasie od wyświetlenia formularza do jego wsyłania. Jeżeli zaś jest inna pzekieruj użytkownika spowrotem do formularza edycji i informacją o tym, że rekord został przez kogoś zaktualizowany.
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: 4.10.2025 - 21:09