![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jest jakakolwiek możliwość, zby wykonało się 1 zapytanie, a drugie nie? (zakładając, że dane w zmiennych są poprawne)
Ponieważ raz na jakiś czas dodaje mi transakcję (insert into transaction_pay...), ale już nie aktualizuje ilości towarów (update transactions ...) Wspomnę tylko, że ten kawałek kodu jest dość często uruchamiany (cronem co 3minuty a następnie w pętli po kilkaset razy). Gdzie szukać problemu? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@lukaskolista, @markonix: Każda seria zapytań (włączając w to pojedyncze zapytania) musi być objęta transakcją. W przypadku pojedynczych zapytań można sobie co najwyżej darować jawne deklarowanie transakcji, bo domyślnie włączony jest autocommit.
@jakal: Przede wszystkim przydała by się informacja o wystąpieniu błędu. Poza rollbackiem mógłbyś też zapisywać informację o przyczynie niepowodzenia operacji - ułatwiłoby to Ci pracę. Dodatkowo, nie muszę chyba wspominać o tym, że użycie PDO znacznie uprościłoby kod. Cytat Na drugiej tabeli jest wykonywanych znacznie więcej operacji, również przez inny cron. Jakiego typu są to operacje? Mogą one nie mieć kompletnie żadnego znaczenia, być może wystarczy jedynie zwiększyć poziom izolacji transakcji, a być może rzeczywiście trzeba będzie blokować całą tabelę.EDIT: Sam kod, mimo iż tragicznej jakości, wydaje się być w porządku. Problem jest prawdopodobnie gdzie indziej. Ten post edytował Crozin 27.09.2012, 13:49:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 10:16 |