PHP Conference Nagoya 2025

pg_put_line

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

pg_put_lineSend a NULL-terminated string to PostgreSQL backend

Açıklama

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

pg_put_line() sends a NULL-terminated string to the PostgreSQL backend server. This is needed in conjunction with PostgreSQL's COPY FROM command.

COPY is a high-speed data loading interface supported by PostgreSQL. Data is passed in without being parsed, and in a single transaction.

An alternative to using raw pg_put_line() commands is to use pg_copy_from(). This is a far simpler interface.

Bilginize:

The application must explicitly send the two characters "\." on the last line to indicate to the backend that it has finished sending its data, before issuing pg_end_copy().

Uyarı

Use of the pg_put_line() causes most large object operations, including pg_lo_read() and pg_lo_tell(), to subsequently fail. You can use pg_copy_from() and pg_copy_to() instead.

Bağımsız Değişkenler

connection

PgSql\Connection nesnesi. bağlantı belirtilmemişse öntanımlı bağlantı kullanılır. Öntanımlı bağlantı pg_connect() veya pg_pconnect() işleviyle kurulmuş son bağlantıdır.

Uyarı

PHP 8.1.0 ve sonrasında, öntanımlı bağlantının kullanımı önerilmemektedir.

data

A line of text to be sent directly to the PostgreSQL backend. A NULL terminator is added automatically.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.1.0 bağlantı bağımsız değişkeni artık PgSql\Connection nesnesi kabul ediyor, evvelce bir özkaynak kabul ederdi.

Örnekler

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

Ayrıca Bakınız

add a note

User Contributed Notes 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