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.pg_put_line
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
pg_put_line
Референца за `function.pg-put-line.php` со подобрена типографија и навигација.
pg_put_line
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pg_put_line — Испрати NULL-терминиран стринг до PostgreSQL бекенд
= NULL
pg_put_line() испраќа NULL-терминиран стринг до PostgreSQL бекенд серверот. Ова е потребно во комбинација со PostgreSQL-овиот COPY FROM command.
COPY е интерфејс за вчитување податоци со голема брзина поддржан од PostgreSQL. Податоците се пренесуваат без парсирање и во една трансакција.
Алтернатива на користење на сурови pg_put_line() команди е да се користи pg_copy_from(). Ова е многу поедноставен интерфејс.
Забелешка:
Апликацијата мора експлицитно да ги испрати двата знака "\." на последниот ред за да го индицира на бекендот дека завршила со испраќање на своите податоци, пред да издаде pg_end_copy().
Користењето на pg_put_line() предизвикува повеќето операции со големи објекти, вклучувајќи pg_lo_read() and pg_lo_tell(), да откажат подоцна. Можете да користите pg_copy_from() and pg_copy_to() instead.
Параметри
connection-
Еден PgSql\Connection инстанца. Кога
connectionне е наведено, се користи стандардната врска. Стандардната врска е последната врска направена од pg_connect() or pg_pconnect().Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОд PHP 8.1.0, користењето на стандардната врска е застарено.
data-
Ред на текст што ќе се испрати директно до PostgreSQL бекендот. А
NULLтерминатор се додава автоматски.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На connection параметарот очекува PgSql\Connection
инстанца сега; претходно, а resource се очекуваше.
|
Примери
Пример #1 pg_put_line() example
<?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);
?>Белешки од корисници 2 забелешки
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.