Pdo\Pgsql::copyFromFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromFileCopie des données d'un fichier dans une table

Description

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

Copie des données d'un fichier spécifié par filename dans la table tableName en utilisant separator comme délimiteur de champs et la liste fields

Liste de paramètres

tableName
Une chaîne de caractères contenant le nom de la table.
filename
Le nom du fichier d'où importer les données.
separator
Un délimiteur utilisé pour séparer les champs dans une entrée du tableau rows.
nullAs
Comment interpréter les valeurs NULL.
fields
La liste des champs à insérer.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si filename ne peut pas être ouvert en lecture, l'échec est signalé via la gestion des erreurs de la connexion (voir PDO::ATTR_ERRMODE) ; avec PDO::ERRMODE_EXCEPTION, une PDOException est levée.

Exemples

Exemple #1 Exemple avec Pdo\Pgsql::copyFromFile()

Le fichier contient un enregistrement par ligne, les champs étant joints par separator (une tabulation par défaut).

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

L'exemple ci-dessus va afficher :

2

Voir aussi