pg_copy_to

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

pg_copy_to 配列にテーブルをコピーする

説明

pg_copy_to(
    resource $connection,
    string $table_name,
    string $delimiter = ?,
    string $null_as = ?
): array

pg_copy_to() は、テーブルを配列にコピーします。 レコードを取得するために、内部では COPY TO SQL コマンドを発行します。

パラメータ

connection

PostgreSQL データベースの接続リソース。

table_name

データを rows にコピーするテーブルの名前。

delimiter

rows の要素内で、各フィールドに対応する値を 区切る文字。デフォルトは TAB です。

null_as

rows の中で、SQL の NULL をどのように表現するか。デフォルトは \N ("\\N") です。

返り値

COPY されたデータが 1 行ごとにひとつの要素と なっている配列を返します。失敗した場合には false を返します。

例1 pg_copy_to() の例

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

参考

add a note add a note

User Contributed Notes 3 notes

up
1
John M
3 years 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
21 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
-3
etiger13 at gmail dot com
14 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