downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

pg_copy_to> <pg_convert
Last updated: Fri, 13 Nov 2009

view this page in

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from 配列からテーブルに挿入する

説明

bool pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] )

pg_copy_from() は、rows の内容をテーブルに挿入します。レコードを挿入するために、内部では COPY FROM SQL コマンドを発行します。

パラメータ

connection

PostgreSQL データベースの接続リソース。

table_name

rows をコピーするテーブルの名前。

rows

table_name にコピーするデータの配列。 rows の個々の値が table_name のひとつの行となります。rows の個々の値は、 それぞれのフィールドに対応する値が区切り文字で区切られており、最後は 改行で終了していなければなりません。

delimiter

rows の要素内で、各フィールドに対応する値を 区切る文字。デフォルトは TAB です。

null_as

rows の中で、SQL の NULL をどのように表現するか。デフォルトは \N ("\\N") です。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 pg_copy_from() の例

<?php
   $db 
pg_connect("dbname=publisher") or die("Could not connect");
   
   
$rows pg_copy_to($db$table_name);
   
   
pg_query($db"DELETE FROM $table_name");
   
   
pg_copy_from($db$table_name$rows);
?>

参考



pg_copy_to> <pg_convert
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
pg_copy_from
etiger13 at gmail dot com
18-Nov-2009 04:10
This will not look in other schema's, only the schema's in your search path. You can temporarily change this behavior with the following code:

<?php
pg_query
($conn, "SET search_path TO myschema;");

$copy_from = pg_copy_from($conn, 'tablename', $filetoarray, ",");
   
if ( !
$copy_from )
{
    echo
pg_last_error($conn);
       
    exit;
}

pg_query("RESET search_path;");
?>
Anonymous
11-Jun-2009 07:08
see also: pg_put_line for a solution that does not require buffering of all the data to be copied,
kapouer_php at melix dot org
27-Aug-2007 06:24
pg syntax is :
COPY test (cola, colb, colc) FROM stdin;
...

this function doesn't let you in which order the columns are !
vlad at php dot net
20-Mar-2003 06:38
By default NULL values are a backslash followed with capital N ("\\N").

Also, you can't insert entries with OIDs (I've added it to my TODO list though)
carl at thep.lu.se
10-Sep-2002 07:06
Something needs to be said about the format of the array.
Judging by what I've seen, it's pretty much what you get
from loading a tab-separated file with file(). That is, the
lines are linefeed-terminated and there's no need to have
an extra line with "\.". On the other hand, when I try using this
command the connection to the server ends up in some odd
state and is then lost:
PHP Warning:  USo() query failed: server closed the connection unexpectedly

I think it might be safer to use the lower-level function
pg_put_line() for now.
17-Jul-2002 03:10
For starters, you can check the first line of every function document. It tells the minimum versions of PHP that you need in order to use the function.

pg_copy_to> <pg_convert
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites