Đó là vì PHP null
được chuyển đổi thành chuỗi trống "" khi bạn tạo chuỗi truy vấn.
$variable = null;
$insert = "insert into mytable set mycolumn = $variable" ;
echo $insert;
Sẽ sản xuất:
insert into mytable set mycolumn =
Để khắc phục truy vấn của bạn, bạn sẽ cần kiểm tra xem biến PHP có phải là null hay không và thay đổi nó thành chuỗi NULL. (Hiện cũng được đề cập trong nhận xét của @MarkB.)
if ($variable == null){
$variable = "NULL";
}
Điều này sẽ tạo ra:
"insert into mytable set mycolumn = NULL"
Lưu ý rằng NULL không có "xung quanh nó vì nó hiện đã được nối với chuỗi khác.
* ( ghi chú:insert into tablename set ..
không đúng, bạn insert
dữ liệu hoặc bạn update tablename set
dữ liệu.)