![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam szanowne grono.
W bazie mam pole 3 pola "date" z domyślnym ustawienim NULL, polą mogą być puste. W formularzu jest możliwość wpisania daty, ale nie jest to obowiazkowe.
Wysyłając dane do bazy (nie wypełnione pole daty) odziwo baza mimo wartości domyśnej NULL, wklepuje w odpowiednie pole "1970-01-01" Próbuje na wszystkie sposoby aby pole z formularza gdy nie jest uzupełnione było zapisywane w bazie jako NULL. Kody w postaci: bądź nie dają efektów... Ten post edytował barthez 17.09.2012, 09:50:59 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Daj na bazie zapytanie:
I wklej tu wynik. Coś musi być nie tak w bazie ze strukturą tych pól "date". Ogólnie jeśli w zapytaniach do bazy podajesz NULL bez żadnych cudzysłowów lub omijasz to pole przy insertach to musi to działać. Może podajesz to NULL z cudzysłowami - wtedy baza dostaje ciąg "NULL" który jest dla niej równy 0 a co za tym idzie timestamp = 0 a co za tym idzie 1970-01-01 (IMG:style_emoticons/default/smile.gif) Ten post edytował Sephirus 17.09.2012, 09:57:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Teraz jest tak:
i insert
Nie podoba mi się bind_param(s) dla wartości NULL dla dat ? Ten post edytował barthez 17.09.2012, 10:28:29 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
bind_param zamieni Ci na pewno NULL na '' albo 'NULL' proponuje zatem wrzucenie dat w standardowej formie czyli manualnie bez "?" - tylko użyj jakiejś metody typu addslashes albo coś takiego w celu zabezpieczenia.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jasne, najlepiej całość przepisać (IMG:style_emoticons/default/wink.gif)
http://php.net/manual/en/pdo.constants.php PDO::PARAM_NULL |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Sephirus null'e nie są zamieniane na nic więc nie motaj (IMG:style_emoticons/default/wink.gif)
if (!empty($this->doswiadczenie)) { $exday = NULL; } else { $exday = date('Y-m-d',strtotime($this->doswiadczenie)); } Rety.... logika się kłania. Powinno być if (empty($this->doswiadczenie)) { $exday = NULL; } else { $exday = date('Y-m-d',strtotime($this->doswiadczenie)); } Analogicznie reszta |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 10.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście szukałem rozwiązania gdzieś tam głęboko, a temat był całkiem na wierzchu, dzięki nospor
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 02:01 |