Copia dados de um array PHP para uma tabela

# Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArray — Copia 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

- Pdo\Pgsql::copyToArray() - Copia dados da tabela do banco de dados para o array PHP
- Pdo\Pgsql::copyFromFile() - Copia dados do arquivo para a tabela
- Pdo\Pgsql::copyToFile() - Copia dados da tabela para arquivo

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open