![]() |
![]() |
![]()
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: 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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 21:09 |