Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Problem z mysql i datą
prohol
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 20.07.2007

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


witam

Mam problem z dodawaniem danych z formularza do bazy mysql. Mianowicie w tabeli zdefiniowane mam pola typu DATE i kozystajac z method update lub insert pola typu DATE nie sa w bazie aktualizowane. Oczywiscie dane z formularza sa w postato YYYY-MM-DD oraz przepuszczone przez Zend_Filter_StripTags(to chyba nie powinno miec znaczenie). FW nie wyrzuca bledow (PDO_Mysql) a nie wiem jak wyswietlic przetworzone zapytanie aby sprawdzic czy jest prawidlowo budowane przez FW. Ma ktos jakis pomysl co moze byc nie tak?

  1. $imie=trim($filter->filter($this->_request->getPost('imie')));
  2. //itd pozostale dane z formularza
  3. //przykladowa tablica dla update/insert
  4. $data=array('imie' => $imie,'data_dodania'=>$data_dodania');
  5. $tabela->update($data,$tabela->getAdapter()->quoteInto('id = ?', $id));


ps. czy jest mozliwosc przechwycenia wszystkich wyjatkow rzucanych przez update()? lub jakie wyjatki przechwycic aby zobaczyc czy cos jest nie tak podczas insert/update, a najlepiej to jak wyswietlic przetworzone juz zapytanie sql??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


a gdzie odbierasz
  1. $data_dodania


możesz też zrobić trochę inaczej i ładniej:
  1. $R_Row = $tabela->fetchRow( array( 'id=?'=>$id ) );
  2. $R_Row->imie = $imie;
  3. $R_Row->data_dodania = $data_dodania;
  4. $R_Row->save();


Dochodzi jedno zapytanie pobrania rekordu ale wygląda ładniej i nie trzeba robić quoteInto bo robi to za Ciebie metoda fetchRow/ fetchAll.

edit: poprawka kodu.

Ten post edytował melkorm 9.06.2010, 10:42:37
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Daj wyświetlanie wszystkich błędów i wyjątków w .ini:
Kod
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1


I nie możesz datę dodania zrobić po prostu =NOW()?

Jeśli data jest wpisywana w formularzu, to powinna być zwalidowana, wyechuj sobie datę i zobaczysz, czy jest poprawna czy nie.
Go to the top of the page
+Quote Post
prohol
post
Post #4





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 20.07.2007

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


Nie wiedziec czemu zadzialalo "samo" z siebie.. dzieki za odpowiedzi napewno przydadza sie na przyszlosc,
Go to the top of the page
+Quote Post

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: 23.08.2025 - 05:01