PHP 8.3.0 RC 6 available for testing

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 命令来检索记录。

参数

connection

PgSql\Connection 实例。

table_name

从表中将数据复制到 rows 中的表名。

separator

rows 的每个元素分割为每个字段的值的标记。默认为 \t

null_as

SQL NULL 值在 rows 中的表示方式。默认为 \\N"\\\\N")。

返回值

COPY 数据的每一行都作为一个元素组成的 array, 或者在失败时返回 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);
?>

参见

add a note

User Contributed Notes 3 notes

up
1
John M
3 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
20 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
-4
etiger13 at gmail dot com
13 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;");
?>
To Top