![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 7.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z updatem danych w bazie. Oto jakie wykonane zapytanie wyświetla mi webdebug:
Jak widać wcięło cały środek. Oto kod, który odpowiada za UPDATE:
Jeśli odkomentuję dalsze rzucanie wyjątku to dostaję komunikat "Something is wrong in your syntax near WHERE campaign.CAMP_ID = 99999" Cóż może powodować takie zachowanie? pzdr. |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
W PHP5 można nareszcie robić type hinting. Poza tym Propel sam wie czy ma zrobić insert czy update. I na koniec: nie ma sensu robić transakcji dla jednej operacji.
Całą tą funkcję można napisać tak:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 7.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Bez transakcji nie robił mi UPDATE ponieważ tabela jest nadrzędna dla innej. Stąd transakcja. A niestety u mnie propel nie wie, czy ma być insert czy update, przy $campaign->save() się wywalał rzucając wyjątkiem o naruszeniu unikalności klucza podstawowego. Stąd cała otoczka w tej metodzie.
Więc skąd to ucięte zapytanie? pzdr |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Propel nie obcina zapytania, kawałek zapytania w wyjątku to kawałek błędnego zapytania, który to kawałek jest zwracany przez mysql.
Jeśli chodzi o nie działanie metody save, to szerze mówiąc wątpię w to. Pewnie błąd leży gdzie indziej. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 7.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Metodę save() przetestuję zaraz ponownie. Ale powiedz mi: dlaczego akurat to zapytanie zwraca takie "ucięte" a inne web debug pokazuje w całości( mimo, że są wielolinijkowe)? Bo trochę tego nie rozumiem. No i błąd sugeruje, że być może faktycznie je ucina.
Dzięki za odzew. pzdr. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Ale urywek zapytania dostajesz w wyjątku, a nie w debug toolbarze. Zapytanie jest generowane całe, a mysql stwierdza, że w zapytaniu jest błąd i pokazuje w którym miejscu. Jeśli w zapytaniu nie byłoby błędu to w całości pokazałoby się w debug toolbarze. Nie wiem jak inaczej Ci to wytłumaczyć.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 0 Dołączył: 7.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie tego zapytania: jak zakomentowałem rzucanie wyjątku w bloku catch() to widziałem to zapytanie w debug toolbarze więc tu tłumaczyć mi nie musisz - wiem co widziałem
![]() Ale to ma mniejsze znaczenie teraz. Prawdopodobnie faktycznie błąd był gdzie indziej i teraz jak zmieniłem na samo ->save() to już jest ok więc mieliście rację. Pewnie błąd poprawiłem przy okazji jakiejś innej zmiany kodu. Dzięki za odpowiedzi i pomoc ![]() pzdr. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 12:32 |