PHP 8.4.2 Released!

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_put_lineПередаёт на PostgreSQL сервер строку с завершающим нулём

Описание

pg_put_line(PgSql\Connection $connection = ?, string $data): bool

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);
?>

Смотрите также

  • pg_end_copy() - Синхронизирует с бэкендом PostgreSQL

Добавить

Примечания пользователей 2 notes

up
2
kurt at nospam dot milliganshome dot net
19 years ago
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.
up
0
smcbride at msn dot com
4 years ago
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.
To Top