PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chèn NULL vào DB PostgreSQL qua PHP khi trường ngày trống

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thực thể liên kết DB và lập chỉ mục

  2. Tổng quan về Serial Pseudo-Datatype cho PostgreSQL

  3. psql:FATAL:quá nhiều kết nối cho vai trò

  4. Cách Tand () hoạt động trong PostgreSQL

  5. Hàm tổng hợp tổng hợp mảng cặp đôi?