This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pg_put_line — Invia una stringa terminata da NULL al backend PostgreSQL
pg_put_line() invia una stringa terminata da NULL
al backend PostgreSQL. Ciò è utile, per esempio, per
l'inserimento ad alta velocità di dati in una tabella, iniziato mediante
l'invocazione di una operazione di copia. Il carattere NULL finale
è aggiunto automaticamente. Restituisce true
in caso di successo, false
in caso di fallimento.
Nota:
L'applicazione deve explicitamente inviare i due caratteri "\." sull'ultima riga, ad indicare al backend il termine dell'invio dei dati.
Vedere anche pg_end_copy().
Example #1 Inserimento ad alta velocità dai dati in una tabella
<?php
$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);
?>
This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.
When using this function, don't get bit by using 'literal\tanotherliteral\n' issue by using single quotes vs. double quotes. "literal\tanotherliteral\n" is not the same. Many of the functions are impacted on how double quotes treats escape characters different than single quotes. I forget it all the time.