pg_put_line

Send a NULL-terminated string to PostgreSQL backend

Description

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

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.

Note:

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.

Warning

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.

Parameters

connection

An PgSql\Connection instance. When connection is unspecified, the default connection is used. The default connection is the last connection made by pg_connect or pg_pconnect.

Warning

As of PHP 8.1.0, using the default connection is deprecated.

data

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

Return Values

Returns true on success or false on failure.

Changelog

Version Description
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.

Examples

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

See Also

  • pg_end_copy