Null - это просто еще один тип данных в PHP, который имеет только одно значение (null). Поскольку PHP является языком с типичной неопределенностью, он может сбить с толку то, как он обрабатывает различные значения.
"", 0, "0", False, array(), Null
все считаются ложными в PHP.
Но ноль - это другой вид животных. Несовместимость main с использованием 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 (по крайней мере, некоторым). В большинстве случаев это нормально.
Когда дело доходит до столбцов базы данных, в NULL PHP там нет места. Видите ли, SQL - это язык на основе строк. NULL в SQL должен быть представлен NULL
без кавычек.
Так что, если вы хотите пустое поле, установите его в ""
INSERT INTO foo SET bar = ""
Но если вы хотите иметь значение NULL, установите его в NULL
INSERT INTO foo SET bar = NULL
БОЛЬШАЯ РАЗНИЦА.
Но если вы попытаетесь вставить PHP NULL напрямую, он добавит нулевой символ в запрос (что оставляет вас с пустой или синтаксической ошибкой, в зависимости от того, цитировали ли вы его).