值得注意的是,就像 PostgreSQL 中的 COPY TO 语句一样,'$table_name' 可以包含列列表或是一个 select 查询。
例如
$rows = pg_copy_to($db,'schema."TableName" (column1, column2, ...)';
$rows = pg_copy_to($db,'(SELECT ...)');
(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 命令来检索记录。
connection
一个 PgSql\Connection 实例。
table_name
要将数据复制到 rows
的表的名称。
separator
用于分隔每个字段在每个 rows
元素中的值的标记。默认值为 \t
。
null_as
SQL NULL
值如何在 rows
中表示。默认值为 \\N
("\\\\N"
)。
版本 | 说明 |
---|---|
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);
?>
值得注意的是,就像 PostgreSQL 中的 COPY TO 语句一样,'$table_name' 可以包含列列表或是一个 select 查询。
例如
$rows = pg_copy_to($db,'schema."TableName" (column1, column2, ...)';
$rows = pg_copy_to($db,'(SELECT ...)');
"它在内部发出 COPY TO SQL 命令来插入记录"
我怀疑这个语句是不正确的,或者应该将 s/insert/retrieve/。
您不能在此命令中指定模式名称。您可以使用以下代码更改一次查询的搜索路径
<?php
pg_query($conn, "SET search_path TO myschema;");
$copy_to = pg_copy_to($conn, 'tablename');
pg_query("RESET search_path;");
?>