(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyFromArray — Copie des données d'un tableau PHP dans une table
$tableName,$rows,$separator = "\t",$nullAs = "\\\\N",$fields = null
Copie des données du tableau rows dans la table
tableName en utilisant separator
comme délimiteur de champs et la liste fields.
tableNameUne chaîne de caractères contenant le nom de la table.
rows
Un array indexé (ou Traversable) 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.
fieldsLa liste des champs à insérer.
| Version | Description |
|---|---|
| 8.5.0 |
rows accepte désormais également un
Traversable ; antérieur à cela, seul un
array était accepté.
|
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