(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyFromArray — Копирует данные из PHP-массива в таблицу
$tableName,$rows,$separator = "\t",$nullAs = "\\\\N",$fields = null
Метод поэлементно разбирает массив rows
на список полей fields
по разделителю separator
и копирует данные в таблицу tableName.
tableNameСтрока с названием таблицы.
rows
Объект Traversable или индексный массив (array) строк (string),
в которых значения полей разделяются символом separator.
separator
Разделитель, по которому записи массива rows
разбираются на значения полей.
nullAs
Строка, которая интерпретируется как SQL-значение NULL.
fieldsСписок полей для вставки.
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
| Версия | Описание |
|---|---|
| 8.5.0 |
Параметр rows теперь также принимает
объекты Traversable; раньше принимался
только массив (array).
|
Пример #1 Пример копирования данных из массива методом Pdo\Pgsql::copyFromArray()
Каждый элемент параметра rows содержит одну запись,
в которой значения полей соединяются разделителем 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