(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyToFile — テーブルのデータをファイルにコピーする
$tableName,$filename,$separator = "\t",$nullAs = "\\\\N",$fields = null
filename で指定されたファイルに、テーブルからデータをコピーします。
その際、separator をフィールドのデリミタ、そして
fields のリストを使います。
tableNamefilenameseparatorrows 配列の各要素の中で
フィールドを分割するためのデリミタ
nullAsNULL 値をどのように扱うかを指定します
fields
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