Pdo\Pgsql::copyFromFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromFileКопирует данные из файла в таблицу

Описание

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

Метод построчно разбирает файл 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

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top