2012-03-04 64 views
1

我在我的MySQL字段其数据NULLMysql NULL字段和php isset?

但是在PHP获取数据到一个数组的时候怎么来的我可以比较它的价值不首先使用PHP的isset

例,

$var = null; 

if ($var == 123123) // GENERATES ERROR AS DIDN'T CHECK IF IT WAS SET FIRST 

但在MySQL

$q = $dbc -> prepare("SELECT nullColumn FROM table_1"); 
$q -> execute(); 
$null = $q -> fetch(PDO::FETCH_ASSOC); 
if ($null['nullColumn'] == 2312312) // DOESN'T GENERATE ERROR EVEN THOUGH VALUE IS NULL 

我也该值用于var_dump并返回NULL

+1

为什么你不希望使用isset?请提供一个代码示例,使我们可以了解你的使用情况 – Alp 2012-03-04 23:48:22

+1

你不*有*使用'isset'如果你的价值是'null'。你可能会在这里混合一些东西。关注说明性代码示例? – deceze 2012-03-04 23:50:48

回答

2
$var = null; 

if ($var == 123123) // GENERATES ERROR AS DIDN'T CHECK IF IT WAS SET FIRST 

这个前提是假的!上面的代码将不产生一个错误,这是因为可变$var存在。

试图使用而不是存在的变量,即未在任何地方声明的变量产生错误。试图使用值为null的声明变量是完全合法的。

为深入了解这一话题见The Definitive Guide To PHP's isset And empty

0

我想取决于驱动程序。 PDO为NULL字段获取NULL。 不必使用isset,使用is_null($field)null === $field