Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]aktualizacja bazy
Papub
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

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


Witam. Piszę aplikacje w symfony. Chcę zaaktualizacować zawartość rekordu w bazie danych w tabeli kategorie. Dane do akcji przychodzą z js.

  1. if($request->isXmlHttpRequest()) {
  2.  
  3. $con = Propel::getConnection();
  4.  
  5. $c1 = new Criteria();
  6. $c1->add(KategoriePeer::ID_KATEGORI, $this->getUser()->getAttribute('idkat'));
  7. $c1->add(KategoriePeer::NAZWA, $this->getRequestParameter('tytul'));
  8. $c1->add(KategoriePeer::ID_RODZICA, $this->getRequestParameter('rodzic'));
  9.  
  10. if(KategoriePeer::doUpdate($c1, $con)) {
  11. $response['type'] = 'success';
  12. } else {
  13. $response['type'] = 'error';
  14. }
  15. $this->status = json_encode($response);
  16. }


(UPDATE kategorie SET nazwa="1", id_rodzica="1" WHERE id_kategori = "1")

Powyżej to kod akcjii którym to załatwiam. Wszystko działa poprawnie kiedy dane które są różne niż te w bazie. Jeżeli w tabeli jest 1, 1, 1 i robię update na 1,1,3 wtedy będzie success. A jeżeli w tabeli jest 1,1,1 i zmieniam na 1,1,1 wtedy jest error. Jak to załatwić. Przecież nie będę najpierw wyciagał z bazy danych porównywał na poziomie akcji tych danych z tym co chce zapisać i jeżeli są różne to dopiero wykonywać update. Coś robię źle?

Pozdrawiam
Powód edycji: [strife]: Dodanie tagu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Valantir
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 7
Dołączył: 6.09.2011
Skąd: Olsztyn

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


Nie wiem czy inni też tak robią... Wiem jedno, że jeżeli chcesz mieć pewność, że aktualizacja została wykonana poprawnie, to możesz tak postąpić... wtedy będziesz miał pewność, że dane zaktualizowano prawidłowo sprawdzając co zwraca funkcja save(). Ewentualnie jakoś samemu napisać metodę, która podczas aktualizacji będzie sprawdzać ilość zaktualizowanych rekordów (mimo tego, że dane aktualizujące będą takie same jak dane przechowywane w bazie). Wtedy sprawdzisz czy ilość rekordów jest większa od 0 (dobrze zaktualizowane)... Jakoś nie mam pomysłu jak wykonać to przy użyciu Propela bez kombinowania z jednym zapytaniem... W grę wchodzi też możliwość "z palca" wpisania zapytania aktualizującego i sprawdzenie później czy zwróci jeden czy zero... Szkoda, że inni się nie wypowiedzą, bo prawdę powiedziawszy też jestem ciekaw czy jest możliwość załatwienia tego w taki sposób w jaki myślisz.
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 - 19:07