COPY FROM file
doit être exécuté par un compte superutilisateur et cette restriction le rend généralement inadapté à une utilisation Web
Extrait de la documentation :
Mais PHP fournit un support pour COPY FROM stdin
qui n'a pas cette restriction. Cet exemple de la documentation php montre comment c'est fait :
$conn = pg_pconnect("dbname=foo");
pg_query($conn, "create table bar (a int4, b char(16), d float8)");
pg_query($conn, "copy bar from stdin");
pg_put_line($conn, "3\thello world\t4.5\n");
pg_put_line($conn, "4\tgoodbye world\t7.11\n");
pg_put_line($conn, "\\.\n");
pg_end_copy($conn);
Dans le cas d'un fichier, vous devrez ouvrir le fichier avec les fonctions php et le transmettre ligne par ligne à la connexion postgres avec pg_put_line()