Dzieje się tak, ponieważ PHP null
jest konwertowany na pusty ciąg „” podczas tworzenia ciągu zapytania.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Wyprodukuje:
insert into mytable set mycolumn =
Aby naprawić zapytanie, musisz sprawdzić, czy zmienna PHP ma wartość null i zmienić ją na ciąg NULL. (Teraz wspomniane również w komentarzu @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Spowoduje to:
"insert into mytable set mycolumn = NULL"
Pamiętaj, że NULL nie ma wokół siebie „”, ponieważ jest teraz połączony z innym ciągiem.
*(uwaga:insert into tablename set ..
nie jest poprawne, albo insert
dane lub update tablename set
dane.)