Das liegt daran, dass PHP null
ist wird beim Erstellen des Abfragestrings in den leeren String "" umgewandelt.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Wird produzieren:
insert into mytable set mycolumn =
Um Ihre Abfrage zu korrigieren, müssten Sie überprüfen, ob die PHP-Variable null ist, und sie in die Zeichenfolge NULL ändern. (Auch jetzt im Kommentar von @MarkB erwähnt.)
if ($variable == null){
$variable = "NULL";
}
Dies erzeugt:
"insert into mytable set mycolumn = NULL"
Beachten Sie, dass NULL kein " um sich herum hat, da es jetzt mit der anderen Zeichenfolge verkettet ist.
*(Hinweis:insert into tablename set ..
nicht korrekt ist, können Sie entweder insert
Daten oder update tablename set
Daten.)