"It issues COPY TO SQL command internally to insert records"
I suspect this statement is incorrect, or that s/insert/retrieve/ is appropriate.(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_copy_to — 配列にテーブルをコピーする
$connection,$table_name,$separator = "\t",$null_as = "\\\\N"
pg_copy_to() は、テーブルを配列にコピーします。
レコードを取得するために、内部では COPY TO SQL
コマンドを発行します。
connectionPgSql\Connection クラスのインスタンス。
table_name
データを rows にコピーするテーブルの名前。
separator
rows の要素内で、各フィールドに対応する値を
区切る文字。デフォルトは \t です。
null_as
rows の中で、SQL の NULL
をどのように表現するか。デフォルトは \\N ("\\\\N") です。
COPY されたデータが 1 行ごとにひとつの要素と
なっている配列を返します。
失敗した場合に false を返します
| バージョン | 説明 |
|---|---|
| 8.1.0 |
connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。
|
例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);
?>"It issues COPY TO SQL command internally to insert records"
I suspect this statement is incorrect, or that s/insert/retrieve/ is appropriate.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 ...)');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;");
?>