Pdo\Pgsql::copyFromFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromFileCopia dados do arquivo para a tabela

Descrição

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

Copia dados do arquivo especificado por filename na tabela tableName usando separator como delimitador de campos e lista de campos no parâmetro fields.

Parâmetros

tableName
String contendo o nome da tabela.
filename
Nome do arquivo que contém os dados a serem importados.
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.

Erros/Exceções

Se filename não puder ser aberto para leitura, a falha é reportada através da manipulação do erro da conexão (consulte PDO::ATTR_ERRMODE); com PDO::ERRMODE_EXCEPTION, uma PDOException é lançada.

Exemplos

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

O arquivo tem um registro por linha com campos 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)');

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

O exemplo acima produzirá:

2

Veja Também