Php - błąd przy zapisywaniu wartosci null w kolumnie timestamp w mysql

cześć,

mój problem dotyczy zapisywaniu wartości do bazy mysql, która może być pusta (null). W bazie danych mam kolumnę typu timestamp, która może przyjmować wartość null. Przy pomocy row_fetch_assoc tworzę sobie tablicę asocjacyjną. Pod koniec pracy z witryną robię insert do bazy, przy czym dla uproszczenia do bazy lądują wszystkie wartości z tablicy asocjacyjnej, niezaleźnie od tego czy były zmieniane czy nie. Problem jest z kolumną timestamp. Nie wiem jaką wartość reprezentuje zmienna w tablicy asocjacyjnej, która jest odpowiednikiem kolumny typu timestamp, ale podejrzewam, że jest do wartość typu 0 lub ‘’ (pusty łańcuch) lub coś podobnego, ale na pewno nie null. Po zapisie tej tablicy w bazie danych w kolumnie typu timestamp pojawia mi się wartość typu 0000-00-00 00:00:00 (jak się dowiedziałem taka wartość przyjmowana jest domyślnie - jeśli zapisywana wartość jest równa 0 lub różna od przyjmowanego zakresu danych). Po ponownym wczytaniu danych jest problem z obliczaniem czasu. Dlatego szukam sposobu, by wartość null była wczytywana i zapisywana bez zmian. Chodzi mi generalnie o rozróżnianie wartości 0 od null (brak informacji), co ma kluczowe znaczenie w moim przypadku.

po pierwsze podejrzyj sobie zawartość tej tablicy poleceniem var_dump(). Ewentualnie dodaj za nim exit, co pozwoli Ci uniknąć zapisania tych danych. Po drugie zawartość pola w tablicy nie zmienia się sama z siebie, więc jeśli na początku masz tam null (zakładam stan początkowy rekordu w bazie), to i null tam zapiszesz. Czyli jeśli tam nie ma null, to znaczy, że gdzieś to zmieniasz. Musisz znaleźć ten fragment w kodzie. Do poprawienia wartości w tym polu możesz też użyć konstrukcji typu:

$tablica['czas'] = empty($tablica['czas']) ? null : $tablica['czas'];

Takie coś sprawdza czy pole w tablicy zawiera coś pustego (null, false, 0, “”) i zmienia to na null. W innym wypadku nic nie zmienia.