Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayCopy data from a PHP array into a table

Beschreibung

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

Copies data from rows array to table tableName using separator as fields delimiter and fields list.

Parameter-Liste

tableName
String containing table name.
rows
An indexed array (or Traversable) of strings with fields separated by separator.
separator
Delimiter used to separate fields in an entry of the rows array.
nullAs
How to interpret SQL NULL values.
fields
List of fields to insert.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.5.0 rows now also accepts a Traversable; previously only an array was accepted.

Beispiele

Beispiel #1 Pdo\Pgsql::copyFromArray() example

Each element of rows is one record whose fields are joined by separator (a tab by default).

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 apple 10
2 banana 20
3 cherry 30

Siehe auch