Vấn đề của bạn là bạn có một dấu ngoặc kép bên trong SQL của bạn:
INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]')
vì vậy nếu $data[0]
là chuỗi "NULL"
, bạn sẽ kết thúc với điều này:
INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ('NULL', ...
và bạn sẽ cố gắng chèn một chuỗi có chứa NULL chứ không phải là ký tự NULL. Bạn sẽ phải thực hiện trích dẫn bên trong $data
thay vì bên trong SQL của bạn:
# Warning: my PHP is a bit rusty but I think this is right
if(empty($data[0])) {
$data[0] = "NULL";
}
else {
$data[0] = "'" . pg_escape_string(utf8_encode($data[$c])) . "'";
}
Và sau đó:
pg_query($_db, "INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ($data[0], $data[1], $data[2], $data[3])";
Hoặc tốt hơn, hãy chuyển sang PDO và sử dụng các câu lệnh đã chuẩn bị sẵn.