(PHP 8 >= 8.4.0)
Pdo\Pgsql::copyFromFile β ΠΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΡΠ°Π±Π»ΠΈΡΡ
$tableName,$filename,$separator = "\t",$nullAs = "\\\\N",$fields = null
ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» 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