(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyFromFile — Копирует данные из файла в таблицу
$tableName,$filename,$separator = "\t",$nullAs = "\\\\N",$fields = null
Метод построчно разбирает файл filename
по разделителю separator
на список полей fields
и копирует данные в таблицу tableName.
tableNameСтрока с названием таблицы.
filenameПуть к файлу с данными для импорта.
separator
Разделитель, по которому записи массива rows
разбираются на значения полей.
nullAs
Строка, которая интерпретируется как SQL-значение NULL.
fieldsСписок полей для вставки.
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
При ошибке открытия файла filename для чтения о сбое
сообщается через механизм обработки ошибок соединения,
который устанавливается через атрибут PDO::ATTR_ERRMODE;
в режиме PDO::ERRMODE_EXCEPTION
выбрасывается исключение PDOException.
Пример #1 Пример копирования данных из файла методом Pdo\Pgsql::copyFromFile()
На каждой строке файл содержит одну запись, поля соединяются
разделителем 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)');
file_put_contents('/tmp/fruits.tsv', "1\tapple\t10\n2\tbanana\t20\n");
$db->copyFromFile('fruits', '/tmp/fruits.tsv');
echo $db->query('SELECT count(*) FROM fruits')->fetchColumn(), "\n";Результат выполнения приведённого примера:
2