2015-10-15 93 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變量 –