Questo perché PHP null
viene convertito nella stringa vuota "" quando crei la stringa di query.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Produrrà:
insert into mytable set mycolumn =
Per correggere la tua query dovresti controllare se la variabile PHP è nulla e cambiarla in stringa NULL. (Anche ora menzionato nel commento di @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Questo produrrà:
"insert into mytable set mycolumn = NULL"
Nota che NULL non ha " intorno ad esso perché ora è concatenato all'altra stringa.
*(nota:insert into tablename set ..
non è corretto, insert
dati o update tablename set
dati.)