PHPのお勉強!

PHP TOP

pg_copy_to

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

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

説明

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

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

パラメータ

connection

PgSql\Connection クラスのインスタンス。

table_name

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

separator

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

null_as

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

戻り値

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

変更履歴

バージョン 説明
8.1.0 connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。

例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

User Contributed Notes 3 notes

up
0
John M
4 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
22 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
15 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;");
?>