Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayCopy data from a PHP array into a table

说明

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

Copies data from rows array to table tableName using separator as fields delimiter and fields list.

参数

tableName
String containing table name.
rows
An indexed array of strings with fields separated by separator.
separator
Delimiter used to separate fields in an entry of the rows array.
nullAs
How to interpret SQL NULL values.
fields
List of fields to insert.

返回值

成功时返回 true, 或者在失败时返回 false

更新日志

版本 说明
8.5.0 rows now also accepts a Traversable; previously only an array was accepted.

示例

示例 #1 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";
}
?>

以上示例会输出:

1 apple 10
2 banana 20
3 cherry 30

参见