Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist der Nullwert von PHP nicht gleich dem Nullwert von MySQL?

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