I am trying to import a txt/csv file into my postgres database from php using "\copy" command. I cannot use COPY instead of \copy as I need it to execute as a psql client. My code is:
$query = '\\'.'copy data1 FROM "data1.txt" WITH CSV HEADER DELIMITER AS "," QUOTE AS "^"';
$result = pg_query($conn,$query);
if (!$result) {
echo "cannot copy data\n";
} else {
echo "SUCCESS!";
}
When I run this php file, I get this error:
PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "\"
LINE 1: \copy data1 FROM "data1.txt" WITH ...
^ in script.php on line 30
You cannot run
\copy
viapg_query()
. It is not an SQL command. It is a meta-command of the psql client.There you can execute:
Or run the shell-command:
Note the quotes. Values need to be single-quoted in PostgreSQL:
'value'
.Double-quotes are for identifiers - and are only actually needed for identifiers with upper case or illegal character or for reserved words:
"My table"
.