PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вмъкнете NULL в PostgreSQL DB чрез PHP, когато полето за дата е празно

Вашият проблем е, че имате единични кавички във вашия SQL:

INSERT INTO product (first_field, second_field, third_field, my_date) 
VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]')

така че ако $data[0] е низът "NULL" , ще завършите с това:

INSERT INTO product (first_field, second_field, third_field, my_date) 
VALUES ('NULL', ...

и ще се опитвате да вмъкнете низ, който съдържа NULL, а не самия NULL литерал. Ще трябва да направите своето цитиране вътре в $data стойности, а не във вашия SQL:

# 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])) . "'";
}

И след това по-късно:

pg_query($_db, "INSERT INTO product (first_field, second_field, third_field, my_date) 
    VALUES ($data[0], $data[1], $data[2], $data[3])";

Или по-добре, преминете към PDO и използвайте подготвени изрази.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PG::Грешка:ГРЕШКА:новото кодиране (UTF8) е несъвместимо

  2. Heroku не мигрира модели в Django

  3. качване на шев файл в postgres bytea колона колона е bytea, но изразът е от тип bigint

  4. Методът org.postgresql.jdbc4.Jdbc4Connection.isValid(int) все още не е внедрен

  5. Как да вмъкна двоични данни в DB с помощта на Laravel?