Pdo\Pgsql::copyFromArray
(PHP 8 >= 8.4.0)
Copy data from a PHP array into a table
Description
Copies data from rows array to table tableName using separator as fields delimiter and fields list.
Parameters
tableNameString containing table name.
rowsAn indexed
array(orTraversable) ofstrings with fields separated byseparator.separatorDelimiter used to separate fields in an entry of the
rowsarray.nullAsHow to interpret SQL
NULLvalues.fieldsList of fields to insert.
Return Values
Success
Changelog
| Version | Description |
|---|---|
| 8.5.0 | rows now also accepts a Traversable; previously only an array was accepted. |
Examples
Pdo\Pgsql::copyFromArray example
Each element of rows is one record whose fields are joined by separator (a tab by default).
<?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";
}
?>The above example will output:
1 apple 10
2 banana 20
3 cherry 30See Also
Pdo\Pgsql::copyToArrayPdo\Pgsql::copyFromFilePdo\Pgsql::copyToFile