pg_put_line

Send a NULL-terminated string to PostgreSQL backend

&reftitle.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.

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`.

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.

&reftitle.parameters;

`connection`

- &pgsql.parameter.connection-with-unspecified-default;

`data`

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

&reftitle.returnvalues;

&return.success;

&reftitle.changelog;

&Version; | &Description;
&pgsql.changelog.connection-object;

&reftitle.examples;

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

&reftitle.seealso;

- `pg_end_copy`