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

SQL NULL 值如何在 rows 中表示。默认值为 \\N ("\\\\N")。

返回值

一个 array,其中包含每个 COPY 数据行的一个元素,或者在失败时返回 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);
?>

参见

添加说明

用户贡献说明 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
21 年前
"它在内部发出 COPY TO SQL 命令来插入记录"

我怀疑这个语句是不正确的,或者应该将 s/insert/retrieve/。
etiger13 at gmail dot com
14 年前
您不能在此命令中指定模式名称。您可以使用以下代码更改一次查询的搜索路径

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

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

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