Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayCopie des données d'un tableau PHP dans une table

Description

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

Copie des données du tableau rows 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.
rows
Un array indexé de strings avec les champs séparés par separator.
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.

Historique

Version Description
8.5.0 rows accepte désormais également un Traversable ; antérieur à cela, seul un array était accepté.

Exemples

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

Chaque élément de rows est un enregistrement dont les champs sont 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)');

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

L'exemple ci-dessus va afficher :

1 apple 10
2 banana 20
3 cherry 30

Voir aussi