Itu karena PHP null
diubah menjadi string kosong "" saat Anda membuat string kueri.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Akan menghasilkan:
insert into mytable set mycolumn =
Untuk memperbaiki kueri Anda, Anda perlu memeriksa apakah variabel PHP adalah null dan mengubahnya menjadi string NULL. (Sekarang juga disebutkan dalam komentar @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Ini akan menghasilkan:
"insert into mytable set mycolumn = NULL"
Perhatikan bahwa NULL tidak memiliki " di sekitarnya karena sekarang digabungkan ke string lainnya.
*(catatan:insert into tablename set ..
salah, Anda juga insert
data atau Anda update tablename set
data.)