(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyFromArray — PHP の配列から、データをテーブルにコピーする
$tableName,$rows,$separator = "\t",$nullAs = "\\\\N",$fields = null
rows 配列からデータをテーブル
tableName にコピーします。その際、separator を
フィールドのデリミタ、そして fields のリストを使います。
tableNamerowsseparator で区切った文字列の数値添字配列(または Traversable)
separatorrows 配列の各要素の中で
フィールドを分割するためのデリミタ
nullAsNULL 値をどのように扱うかを指定します
fields| バージョン | 説明 |
|---|---|
| 8.5.0 |
rows は Traversable も
受け付けるようになりました。
それ以前は、array のみを受け付けていました。
|
例1 Pdo\Pgsql::copyFromArray() の例
rows の各要素が 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)');
$rows = [
"1\tapple\t10",
"2\tbanana\t20",
"3\tcherry\t30",
];
$db->copyFromArray('fruits', $rows);
foreach ($db->query('SELECT * FROM fruits ORDER BY id') as $row) {
echo "{$row['id']} {$row['name']} {$row['qty']}\n";
}
?>上の例の出力は以下となります。
1 apple 10 2 banana 20 3 cherry 30