Pdo\Pgsql::copyToFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyToFileテーブルのデータをファイルにコピーする

説明

public function Pdo\Pgsql::copyToFile(
    string $tableName,
    string $filename,
    string $separator = "\t",
    string $nullAs = "\\\\N",
    ?string $fields = null
): bool

filename で指定されたファイルに、テーブルからデータをコピーします。 その際、separator をフィールドのデリミタ、そして fields のリストを使います。

パラメータ

tableName
テーブル名を含む文字列
filename
エキスポートするファイル名
separator
rows 配列の各要素の中で フィールドを分割するためのデリミタ
nullAs
SQLの NULL 値をどのように扱うかを指定します
fields
エクスポートするフィールドの一覧

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

filename を書き込み用に開けない場合や書き込めない場合、 その失敗は接続のエラー処理(PDO::ATTR_ERRMODE を参照)を通じて報告されます。 PDO::ERRMODE_EXCEPTION の場合は PDOException がスローされます。

例1 Pdo\Pgsql::copyToFile() の例

テーブルが filename に書き出されます。 各行が 1 つのレコードであり、そのフィールドは separator で連結されています。

<?php
$db = new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec('CREATE TABLE fruits (id int, name text, qty int)');
$db->exec("INSERT INTO fruits VALUES (1, 'apple', 10), (2, 'banana', 20)");

$db->copyToFile('fruits', '/tmp/fruits.tsv');
echo file_get_contents('/tmp/fruits.tsv');
?>

上の例の出力は以下となります。

1	apple	10
2	banana	20

参考