Mysql NULL字段和php isset?

时间:2012-03-04 23:45:45

标签: php mysql null

我的mysql字段中包含NULL

的数据

但是在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

2 个答案:

答案 0 :(得分:2)

$var = null;

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

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

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

请参阅The Definitive Guide To PHP's isset And empty深入了解此主题。

答案 1 :(得分:0)

我想这取决于司机。 PDO为NULL字段提取NULL。 不必使用isset,请使用is_null($field)null === $field