Mysql
 sql >> Base de données >  >> RDS >> Mysql

La valeur nulle de PHP n'est-elle pas égale à la valeur nulle de MySQL ?

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.)