2024 日本 PHP 研討會

pg_copy_to

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

pg_copy_to 將表格複製到陣列

說明

pg_copy_to(
    PgSql\Connection $connection,
    字串 $table_name,
    字串 $separator = "\t",
    字串 $null_as = "\\\\N"
): 陣列|false

pg_copy_to() 將表格複製到陣列。它在內部發出 COPY TO SQL 命令來擷取記錄。

參數

連線

一個 PgSql\Connection 實例。

table_name (表格名稱)

要從中複製資料到 rows 的表格名稱。

separator (分隔符號)

rows 的每個元素中,用於分隔每個欄位值的標記。預設值為 \t (Tab)。

null_as (空值表示)

SQL NULL 值在 rows 中的表示方式。預設值為 \\N ("\\\\N")。

返回值

一個 陣列,其中每個元素代表 COPY 資料的一行,如果失敗則返回 false

更新日誌

版本 說明
8.1.0 connection 參數現在需要一個 PgSql\Connection 實例;先前需要的是一個 資源

範例

範例 #1 pg_copy_to() 範例

<?php
$db
= pg_connect("dbname=publisher") or die("無法連線");

$rows = pg_copy_to($db, $table_name);

pg_query($db, "DELETE FROM $table_name");

pg_copy_from($db, $table_name, $rows);
?>

參見

新增註解

使用者貢獻的註解 3 則註解

John M
4 年前
值得注意的是,就像 PostgreSQL 中的 COPY TO 陳述式一樣,「$table_name」也可以包含欄位列表或是一個 SELECT 查詢。
例如:
$rows = pg_copy_to($db,'schema."TableName" (column1, column2, ...)');
$rows = pg_copy_to($db,'(SELECT ...)');
setantae at submonkey dot net
22 年前
「它在內部發出 COPY TO SQL 命令來插入記錄」

我懷疑這個陳述式是不正確的,或者應該將「插入」改為「擷取」。
etiger13 at gmail dot com
15 年前
您無法在此命令中指定 schema 名稱。您可以使用以下程式碼僅針對一個查詢更改搜尋路徑

<?php
pg_query
($conn, "SET search_path TO myschema;");

$copy_to = pg_copy_to($conn, 'tablename');

pg_query("RESET search_path;");
?>
To Top