Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O valor nulo do PHP não é igual ao valor nulo do MySQL?


Isso porque PHP null é convertido na string vazia "" quando você cria a string de consulta.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;

Vai produzir:
insert into mytable set mycolumn = 

Para corrigir sua consulta, você precisa verificar se a variável PHP é nula e alterá-la para string NULL. (Também agora mencionado no comentário de @MarkB.)
if ($variable == null){
    $variable = "NULL";
}

Isso produzirá:
"insert into mytable set mycolumn = NULL"

Observe que NULL não tem " em torno dele porque agora está concatenado com a outra string.

*(nota:insert into tablename set .. não está correto, você também insert data ou você update tablename set dados.)