PHP 8.6.0 Beta 3 is available for testing

Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayКопирует данные из PHP-массива в таблицу

Описание

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

Метод поэлементно разбирает массив 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

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

Добавить

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

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