Pdo\Pgsql::copyFromFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromFileCopia datos de un fichero a una tabla

Descripción

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

Copia datos de un fichero especificado por filename a la tabla tableName utilizando separator como delimitador de campos y la lista fields

Parámetros

tableName
Una cadena de caracteres que contiene el nombre de la tabla.
filename
El nombre del fichero desde el cual importar los datos.
separator
Un delimitador utilizado para separar los campos en una entrada del array rows.
nullAs
Cómo interpretar los valores NULL.
fields
La lista de campos a insertar.

Valores devueltos

Esta función retorna true en caso de éxito o false si ocurre un error.

Errores/Excepciones

Si filename no puede abrirse para lectura, el fallo se notifica a través del manejo de errores de la conexión (véase PDO::ATTR_ERRMODE); con PDO::ERRMODE_EXCEPTION se lanza una PDOException.

Ejemplos

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

El fichero contiene un registro por línea, con los campos unidos por separator (un tabulador por defecto).

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

El ejemplo anterior mostrará:

2

Ver también