pg_put_line
NULL で終わる文字列を PostgreSQL バックエンドに送信する
説明
bool pg_put_line(PgSql\Connection $connection
= ?, string $data
)
COPY
は、PostgreSQL によってサポートされている
高速なデータ読み込みインターフェイスです。データの内容はパースされず、
一度のトランザクションで実行されます。
低レベルな pg_put_line コマンドを用いない別の方法は、
pg_copy_from を使用することです。これは、はるかに
シンプルなインターフェイスです。
注意:
pg_end_copy を実行する際には、送信データの最後に
明示的に "\." の 2 文字を送信する必要があります。これによって、
バックエンドに対してデータ送信の終了を通知します。
警告
pg_put_line の使用は、pg_lo_read
や pg_lo_tell などを含むラージオブジェクトの操作を
発生させ、これが失敗することもあります。そのような場合、かわりに
pg_copy_from および pg_copy_to
が使用可能です。
パラメータ
-
connection
-
PgSql\Connection クラスのインスタンス。
connection
が指定されない場合は、デフォルトの接続を使います。
デフォルトの接続とは、pg_connect または pg_pconnect によって確立された直近の接続です。
警告PHP 8.1.0 以降では、デフォルトの接続を使うことは推奨されなくなりました。
-
data
-
PostgreSQL バックエンドに直接送信されるテキストデータ。
最後に NULL
が自動的に付加されます。
戻り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例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);
?>