आपकी समस्या यह है कि आपके 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 पर स्विच करें और तैयार बयानों का उपयोग करें।