我的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
答案 0 :(得分:2)
$var = null; if ($var == 123123) // GENERATES ERROR AS DIDN'T CHECK IF IT WAS SET FIRST
这个前提是假的!上面的代码将不生成错误,因为变量$var
存在。
尝试使用 not 的变量,即未在任何地方声明的变量,会产生错误。尝试使用值为null
的声明变量是完全合法的。
答案 1 :(得分:0)
我想这取决于司机。 PDO为NULL字段提取NULL。
不必使用isset,请使用is_null($field)
或null === $field