Null 只是 PHP 中的另一种数据类型,它只有一个值 (null)。由于PHP是一种松散的类型语言,因此它可能会混淆它如何处理不同的值。
"", 0, "0", False, array(), Null
在 PHP 中都被认为是 False。
然而,Null是一种不同的动物。与使用 Null 的主要不兼容性在于您无法判断它是否 isset()。
$x = false;
isset($x) -> true
echo $x -> ""
$y = null;
isset($y) -> false
echo $y -> ""
//$z is not set
isset($z) -> false
echo $z -> E_NOTICE
因此,null很奇怪,因为它不遵循PHP中的正常变量规则(至少是一些)。在大多数情况下,这很好。
当涉及到数据库列时,PHP的NULL在那里没有位置。你看,SQL是一种基于字符串的语言。SQL 的 NULL 必须用不带引号表示。NULL
因此,如果您想要一个空字段,请将其设置为“”
INSERT INTO foo SET bar = ""
但是,如果您想要一个 NULL 字段,请将其设置为 NULL
INSERT INTO foo SET bar = NULL
大不同。
但是,如果您尝试直接插入PHP NULL,它将向查询添加零字符(这会给您留下空白或语法错误,具体取决于您是否引用它)。