Det beror på att PHP null
konverteras till den tomma strängen "" när du skapar frågesträngen.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Kommer att producera:
insert into mytable set mycolumn =
För att fixa din fråga måste du kontrollera om PHP-variabeln är null och ändra den till strängen NULL. (Även nämns nu i kommentaren från @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Detta kommer att producera:
"insert into mytable set mycolumn = NULL"
Observera att NULL inte har någon " runt sig eftersom den nu är sammanlänkad med den andra strängen.
*(notera:insert into tablename set ..
inte är korrekt, du antingen insert
data eller du update tablename set
data.)