C'est parce que PHP null
est convertie en chaîne vide "" lorsque vous créez la chaîne de requête.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Produira :
insert into mytable set mycolumn =
Pour résoudre votre requête, vous devez vérifier si la variable PHP est nulle et la remplacer par la chaîne NULL. (Également maintenant mentionné dans le commentaire de @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Cela produira :
"insert into mytable set mycolumn = NULL"
Notez que NULL n'est pas entouré de " car il est maintenant concaténé à l'autre chaîne.
*(remarque :insert into tablename set ..
n'est pas correct, soit vous insert
data ou vous update tablename set
données.)