PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Masukkan NULL ke dalam DB PostgreSQL melalui PHP ketika bidang tanggal kosong

Masalah Anda adalah Anda memiliki tanda kutip tunggal di dalam SQL Anda:

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

jadi jika $data[0] adalah string "NULL" , Anda akan berakhir dengan ini:

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

dan Anda akan mencoba memasukkan string yang berisi NULL daripada literal NULL itu sendiri. Anda harus melakukan kutipan di dalam $data nilai daripada di dalam SQL Anda:

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

Dan kemudian:

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

Atau lebih baik, beralih ke PDO dan gunakan pernyataan yang sudah disiapkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bermigrasi dari DB2 ke PostgreSQL - Yang Harus Anda Ketahui

  2. SQLAlchemy beberapa kunci asing dalam satu kelas yang dipetakan ke kunci utama yang sama

  3. Daftar Periksa Kepatuhan SOx untuk PostgreSQL

  4. Migrasi Heroku:pengubah tipe tidak diizinkan untuk tipe byte

  5. PHP tidak dapat terhubung ke PostgreSQL di CentOS 7