Pdo\Pgsql::copyFromFile

(PHP 8 >= 8.4.0)

Pdo\Pgsql::copyFromFile β€” ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

ОписаниС

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

ΠœΠ΅Ρ‚ΠΎΠ΄ построчно Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» filename ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ separator Π½Π° список ΠΏΠΎΠ»Π΅ΠΉ fields ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ tableName.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

tableName

Π‘Ρ‚Ρ€ΠΎΠΊΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

filename

ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

separator

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ записи массива rows Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° значСния ΠΏΠΎΠ»Π΅ΠΉ.

nullAs

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, которая интСрпрСтируСтся ΠΊΠ°ΠΊ SQL-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL.

fields

Бписок ΠΏΠΎΠ»Π΅ΠΉ для вставки.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈΠ»ΠΈ false, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

Ошибки

ΠŸΡ€ΠΈ ошибкС открытия Ρ„Π°ΠΉΠ»Π° filename для чтСния ΠΎ сбоС сообщаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСтся Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ PDO::ATTR_ERRMODE; Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PDO::ERRMODE_EXCEPTION выбрасываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ PDOException.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ копирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Pdo\Pgsql::copyFromFile()

На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Ρ„Π°ΠΉΠ» содСрТит ΠΎΠ΄Π½Ρƒ запись, поля ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ separator β€” ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ табуляции.

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

2

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • Pdo\Pgsql::copyToFile() - ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Ρ„Π°ΠΉΠ»
  • Pdo\Pgsql::copyFromArray() - ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· PHP-массива Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
  • Pdo\Pgsql::copyToArray() - ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² PHP-массив
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы