Mysql NULL field and php isset?



我的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

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

这个前提是错误的!由于变量$var存在,上述代码将不会生成错误。

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

请参阅PHP的issetempty的最终指南以深入了解此主题。

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

最新更新