Pdo\Pgsql::copyFromArray

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromArrayCopia datos de un array PHP a una tabla

Descripción

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

Copia datos del array rows 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.
rows
Un array indexado (o Traversable) de strings con los campos separados por separator.
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.

Historial de cambios

Versión Descripción
8.5.0 rows ahora también acepta un Traversable; anteriormente sólo se aceptaba un array.

Ejemplos

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

Cada elemento de rows es un registro cuyos campos se unen mediante separator (un tabulador por omisión).

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

El ejemplo anterior mostrará:

1 apple 10
2 banana 20
3 cherry 30

Ver también