PHP Conference China 2020

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_to Kopiert eine Tabelle in ein Array

Beschreibung

pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] ) : array

pg_copy_to() kopiert eine Tabelle in ein Array. Intern wird das SQL Kommando COPY TO aufgerufen, um die Datensätze einzufügen.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

table_name

Name der Tabelle, aus der die Daten in das Array rows kopiert werden.

delimiter

Der Feldbegrenzer, mit dem die Werte in den Elementen von rows separiert werden. Der Vorgabewert ist TAB.

null_as

Bestimmt, wie SQL NULL Werte in rows dargestellt werden. Der Standardwert ist \N ("\\N").

Rückgabewerte

Die Funktion gibt ein array zurück, in dem jedes Element eine Zeile der mit COPY erzeugten Daten enthält. Falls ein Fehler auftritt, wird FALSE zurückgegeben.

Beispiele

Beispiel #1 pg_copy_to() Beispiel

<?php
   $db 
pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen");
   
   
$rows pg_copy_to($db$table_name);
   
   
pg_query($db"DELETE FROM $table_name");
   
   
pg_copy_from($db$table_name$rows);
?>

Siehe auch

  • pg_copy_from() - Fügt Datensätze aus einem Array in eine Tabelle ein

add a note add a note

User Contributed Notes 3 notes

up
1
John M
1 month ago
Worth noting here that just like the COPY TO statement in PostgreSQL, '$table_name' can include a list of columns or be a select query as well.
e.g.:
$rows = pg_copy_to($db,'schema."TableName" (column1, column2, ...)';
$rows = pg_copy_to($db,'(SELECT ...)');
up
0
setantae at submonkey dot net
17 years ago
"It issues COPY TO SQL command internally to insert records"

I suspect this statement is incorrect, or that s/insert/retrieve/ is appropriate.
up
-3
etiger13 at gmail dot com
10 years ago
You cannot specify the schema name in this command. You can change the search path for just one query by using the following code:

<?php
pg_query
($conn, "SET search_path TO myschema;");
   
$copy_to = pg_copy_to($conn, 'tablename');
   
pg_query("RESET search_path;");
?>
To Top