Votre problème est que vous avez des guillemets simples dans votre SQL :
INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]')
donc si $data[0]
est la chaîne "NULL"
, vous obtiendrez ceci :
INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ('NULL', ...
et vous essaierez d'insérer une chaîne contenant NULL plutôt que le littéral NULL lui-même. Vous devrez faire votre citation à l'intérieur du $data
plutôt qu'à l'intérieur de votre 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])) . "'";
}
Et puis plus tard :
pg_query($_db, "INSERT INTO product (first_field, second_field, third_field, my_date)
VALUES ($data[0], $data[1], $data[2], $data[3])";
Ou mieux, passez à PDO et utilisez des instructions préparées.