Je to proto, že PHP null
se při vytváření řetězce dotazu převede na prázdný řetězec "".
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Vyrobí:
insert into mytable set mycolumn =
Chcete-li opravit svůj dotaz, budete muset zkontrolovat, zda je proměnná PHP null, a změnit ji na řetězec NULL. (Nyní také zmíněno v komentáři @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Tím vznikne:
"insert into mytable set mycolumn = NULL"
Všimněte si, že NULL nemá kolem sebe žádný ", protože je nyní zřetězen s druhým řetězcem.
*(poznámka:insert into tablename set ..
není správné, buď insert
data nebo update tablename set
údaje.)