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 — Передаёт на PostgreSQL сервер строку с завершающим нулём
   pg_put_line() передаёт на PostgreSQL сервер
   строку с завершающим нулём. Завершение строки значением NULL
   необходимо при её объединении с командой PostgreSQL
   COPY FROM.
  
   COPY является высокоскоростным интерфейсом
   передачи данных, поддерживаемым PostgreSQL. Данные передаются
   одной транзакцией и не разбираются парсером.
  
В качестве альтернативы можно использовать функцию pg_copy_from(). Она значительно проще в использовании.
Замечание:
Перед запуском функции pg_end_copy() приложение должно сообщить о серверу о завершении передачи данных, добавив в конец последней строки символы "\.".
Использование pg_put_line() может привести к отказу операций с большими объектами, включающих функции pg_lo_read() и pg_lo_tell(). Для этих целей используйте функции pg_copy_from() и pg_copy_to().
connectionЭкземпляр
класса PgSql\Connection.
Функция выберет соединение по умолчанию, если параметр connection не указали.
Соединение по умолчанию — последнее соединение, которое установила функция pg_connect()
или pg_pconnect().
Начиная с PHP 8.1.0 выбор функцией соединения по умолчанию устарел.
data
       Текстовая строка для прямой пересылки на сервер. Завершающий
       NULL добавляется автоматически.
      
   Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
  
| Версия | Описание | 
|---|---|
| 8.1.0 | Параметр connectionтеперь ожидает экземпляр
  класса PgSql\Connection; раньше параметр ожидал ресурс (resource). | 
Пример #1 Пример использования pg_put_line()
<?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.