pg_copy_to

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

pg_copy_to Copy a table to an array

Description

pg_copy_to(
    PgSql\Connection $connection,
    string $table_name,
    string $separator = "\t",
    string $null_as = "\\\\N"
): array|false

pg_copy_to() copies a table to an array. It issues COPY TO SQL command internally to retrieve records.

Parameters

connection

An PgSql\Connection instance.

table_name

Name of the table from which to copy the data into rows.

separator

The token that separates values for each field in each element of rows. Default is \t.

null_as

How SQL NULL values are represented in the rows. Default is \\N ("\\\\N").

Return Values

An array with one element for each line of COPY data, 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_copy_to() example

<?php
   $db 
pg_connect("dbname=publisher") or die("Could not connect");
   
   
$rows pg_copy_to($db$table_name);
   
   
pg_query($db"DELETE FROM $table_name");
   
   
pg_copy_from($db$table_name$rows);
?>

See Also

add a note add a note

User Contributed Notes 3 notes

up
1
John M
1 year ago
Worth noting here that just like the COPY TO statement in PostgreSQL, '$table_name' can include a list of columns or be a select query as well.
e.g.:
$rows = pg_copy_to($db,'schema."TableName" (column1, column2, ...)';
$rows = pg_copy_to($db,'(SELECT ...)');
up
0
setantae at submonkey dot net
18 years ago
"It issues COPY TO SQL command internally to insert records"

I suspect this statement is incorrect, or that s/insert/retrieve/ is appropriate.
up
-5
etiger13 at gmail dot com
12 years ago
You cannot specify the schema name in this command. You can change the search path for just one query by using the following code:

<?php
pg_query
($conn, "SET search_path TO myschema;");
   
$copy_to = pg_copy_to($conn, 'tablename');
   
pg_query("RESET search_path;");
?>
To Top