Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayCopia dados de um array PHP para uma tabela

Descrição

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

Copia dados do array rows para a tabela tableName usando separator como delimitador de campos e uma lista de campos no parâmetro fields.

Parâmetros

tableName
String contendo o nome da tabela.
rows
Um array indexado (ou Traversable) de strings com campos separados por separator.
separator
Delimitador usado para separar campos em uma entrada do array rows.
nullAs
Como interpretar valores SQL NULL.
fields
Lista de campos a serem inseridos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.5.0 rows agora aceira um Traversable; anteriormente somente um array era aceito.

Exemplos

Exemplo #1 Exemplo de Pdo\Pgsql::copyFromArray()

Cada elemento de rows é um registro cujos campos são conectados por separator (uma tabulação por padrão).

<?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";
}
?>

O exemplo acima produzirá:

1 apple 10
2 banana 20
3 cherry 30

Veja Também