Mysql
 sql >> Database >  >> RDS >> Mysql

Il valore nullo di PHP non è uguale al valore nullo di MySQL?

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