2015-10-15 118 views
0

多年以来我有一个简单的问题: 如何将值设置为NULL并将NULL写入MySQL?PHP:将变量设置为NULL并将NULL写入MySQL

$var = trim(mysqli_real_escape_string($_POST["input_from_user"])); 
if(strlen($var) < 1) { 
$newvar = NULL; 
} 
else { 
$newvar = $var; 
} 

和:

INSERT INTO `table` (`var`) VALUES ('$newvar') 

... alyways写入一个空值到MySQL-表,但不是空! 当然:“var”字段被声明为允许MySQL中的“NULL”。

+0

试试使用[未设置](http://php.net/manual/de/function.unset.php) – Jens

+0

五downvoted答案,什么是* *问题。 –

+0

@AlanMachado其中一人实际上回答了这个问题,但并不是每个人都能马上看到。 – x13

回答

1

随着PDO可以使用bindValue()方法来事先准备好的声明

bindValue(':param', null, PDO::PARAM_INT);

Here你可以找到如何做到这一点的mysqli的

+0

downvote解释请? – Robert

-3

你必须使用你的所有数据库交互预处理语句首先。使用时,它们会将您的NULL值传递给数据库,无论是使用mysqli还是PDO。

-3

"INSERT INTO `table` (`var`) VALUES (" . (is_null($newvar)) ? "NULL" : $newvar . ")"; 
+2

这在许多方面都很糟糕。 – Gogol

+0

“NULL”!= NULL我的朋友 – Robert

+2

这就是为什么它适合我的朋友。查询解析器不会看到php变量 –