[PHP-users 5073] Re: 改行コードに関する質問

Seto php-users@php.gr.jp
Tue, 29 Jan 2002 17:02:06 +0900


 Setoです。

>tyuu です。
cut
>以下のようにして作成された table と改行の入った値を
>pg_dump と psql を利用してrestore できますよ。
># できないのかと思って調べてしまった。
>-----------------8<------------------------------
>CREATE SEQUENCE test_key_seq;
>CREATE TABLE test (
>    key INTEGER DEFAULT nextval('test_key_seq'),
>    value TEXT,
>    PRIMARY KEY( key )
>);
>CREATE UNIQUE INDEX foo_key_seq on test( key );
>
>INSERT INTO test(value) VALUES ( 'abc
>def' );
>INSERT INTO test(value) VALUES ( 'ghi
>jkl' );
>----------------->8------------------------------
># pg_dump [DB_NAME] > hoge
># psql [DB_NAME] -f hoge
># psql [DB_NAME]
>select * from test;
上記のようにテーブル定義にINSERTでデータ定義しているだけなら
データの内容は不変ですけど、Web経由でdata入力したものは
そうはなりません。

pg_dumpしてみると
CREATE TABLE ・・・
COPY "xxxx" FROM stdin;
data1-fld1	data1-fld2	data1-fld3
data2-fld1	data2-fdl2	data2-fld3
・・・
\.
となります。

たとえばdata1-fld3に改行コードが入っていると
COPY "xxxx" FROM stdin;
data1-fld1	data1-fld2	data1-
fld3
data2-fld1	data1-fld2	data2-fld3
・・・
\.

となり失敗します。



***************************************
 Junya Seto
 http://www.cii.gr.jp/~seto/mkWeb.html
***************************************