pg_put_line()
(PHP 4 >= 4.0.3, PHP 5, PHP 7)
向 PostgreSQL 后端发送以 NULL 结尾的字符串
说明
pg_put_line([resource $connection],string $data): bool
pg_put_line()向 PostgreSQL 后端服务器发送以 NULL 结尾的字符串。例如可以通过 PostgreSQL 的COPY操作来向表中高速插入数据。结尾的 NULL 字符会自动加入。
COPYis a high-speed data loading interface supported by PostgreSQL. Data is passed in without being parsed, and in a single transaction.
An alternative to using raw pg_put_line() commands is to use pg_copy_from(). This is a far simpler interface.
Note:应用程序必须明确地在pg_end_copy()之前最后一行发送两个字符"."来向后端指明发送数据结束。
WarningUse of the pg_put_line() causes most large object operations, including pg_lo_read() and pg_lo_tell(), to subsequently fail. You can use pg_copy_from() and pg_copy_to() instead.
参数
- $connection
PostgreSQL database connection resource. When$connectionis not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().
- $data
A line of text to be sent directly to the PostgreSQL backend. ANULLterminator is added automatically.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
Example #1 pg_put_line()例子
<?php $conn = pg_pconnect("dbname=foo"); pg_query($conn, "create table bar (a int4, b char(16), d float8)"); pg_query($conn, "copy bar from stdin"); pg_put_line($conn, "3\thello world\t4.5\n"); pg_put_line($conn, "4\tgoodbye world\t7.11\n"); pg_put_line($conn, "\.\n"); pg_end_copy($conn); ?>
参见
pg_end_copy()
与 PostgreSQL 后端同步
This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.