[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/23 13:23 / Filesize : 258 KB / Number-of Response : 780
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

PHP + PostgreSQL



1 名前:りさあ [ 2001/02/26(月) 04:20 ID:7I8PBOt. ]
語りません?

563 名前:nobodyさん mailto:sage [04/02/14 13:57 ID:???]
MySQLと比較して、PostgreSQLの1番良い機能はなんですか?

564 名前:nobodyさん mailto:sage [04/02/14 16:06 ID:???]
ドキュメントが整理されている

565 名前:nobodyさん mailto:sage [04/02/14 16:38 ID:???]
>>561
Windowsは無理。MySQLなら可能。

566 名前:nobodyさん mailto:sage [04/02/14 17:04 ID:???]
>>561
WindowsでPostgreSQLとゆーと、
有料だけとPowergresとか、cygwin上で動かすくらいかな。
WindowsNativeなものを作ってた人もいたけどもうメンテしてなかった気がする。
Linuxはあちこちに情報があるので割愛。
Macはよく知らない。

567 名前:nobodyさん mailto:sage [04/02/14 17:24 ID:???]
Macの場合、OSXだとUNIX環境にPHP+PostgreSQLの環境を構築出来ます。

英語だけど、ここが参考になります。
ttp://www.entropy.ch/home/

568 名前:nobodyさん mailto:sage [04/02/14 19:29 ID:???]
おいらがPantherにPostgreSQL7.4インスコしたときのメモ。

1. Finkでreadlineをインストール

2. PostgreSQLをビルド&インストール
$ ./configure --with-includes=/sw/include --with-libraries=/sw/lib
$ make
$ sudo make install

3. システム環境設定の「アカウント」からユーザ「postgres」を作成。
名前欄は「Postgres」とでもしておく。

つづく。

569 名前:nobodyさん mailto:sage [04/02/14 19:30 ID:???]
4. 環境変数を設定。(.bash_profileに以下の記述を追加)
if [ -e /usr/local/pgsql/ ]; then
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export PATH=$PATH:$POSTGRES_HOME/bin
export MANPATH=$MANPATH:$POSTGRES_HOME/man
fi

5. PosgreSQLを初期化&起動
$ cd /usr/local/pgsql
$ sudo mkdir data
$ sudo chown postgres:postgres data
$ sudo chmod o-rwx data
$ sudo su postgres
$ initdb --no-locale --encoding=UNICOCE -D $PGDATA

570 名前:nobodyさん mailto:sage [04/02/14 19:35 ID:???]
あとはPostgresが自動起動するように/private/etc/hostconfigを設定するのと
/Library/StartupItemsに関連ファイルを入れればおしまい。

これはentropy.chのパッケージ(pgsql-startupitem-1.2.pkg)を使えば一発だし
自力でやりたいのならDarwin用にビルドしたときにPostgresのStartupItemが生成されて、
設定方法も表示されるからそれに従えばOK・・・・だった気がするんだけど
これについてはメモを取り忘れてて思い出せないっス。

571 名前:nobodyさん mailto:sage [04/02/14 19:39 ID:???]
entropy.chのPostgresを使うときはPHPのビルド時にopensslを含めないとエラーが出るのと
makeの前にsudo ranlib /usr/local/pgsql/include/libpqしないとエラーが出ることがあるのに注意。



572 名前:nobodyさん mailto:sage [04/02/14 19:40 ID:???]
スマソ、>>571
/usr/local/pgsql/lib/libpq.a
ですた。

573 名前:nobodyさん [04/02/15 16:03 ID:Axezk+8k]
永谷園のホームページ、ダウン中。。
www.nagatanien.co.jp/

pg_connect() unable to connect to PostgreSQL server: connectDBStart() -- connect() failed: No such file or directory
:
:
このエラーが出るってことは、テストしていないってことか?
ここ見てる担当者、何とかしたほうがいいんじゃない?

www.nagatanien.co.jp/cgi-bin/printenv

このプログラム、普通消さないか?

574 名前:nobodyさん mailto:sage [04/02/15 17:42 ID:???]
まだデバッグ中なんだろ

575 名前:nobodyさん mailto:sage [04/02/15 18:33 ID:???]
デバッグするなら外部からアクセス遮断するとかしないのか?
DBのフィールド名までおっぴろげでるぞ。

576 名前:森の妖精さん mailto:sage [04/02/15 18:40 ID:???]
あぶねーなー。。これ。。。
ポートもデフォルトだし。もしかしてパスワードとか設定してなかったら
ガクガクブルブルものだな。


577 名前:nobodyさん mailto:sage [04/02/15 21:55 ID:???]
デフォルトで外部サーバから接続できないからいいだろ

578 名前:nobodyさん mailto:sage [04/02/15 22:30 ID:???]
普通は本ちゃんサーバーのエラーメッセージは非表示にしないか?

579 名前:558 mailto:sage [04/02/15 22:44 ID:???]
>>562
失礼しました〜

580 名前:nobodyさん mailto:sage [04/02/16 01:53 ID:???]
つか、apache, PHPとも古すぎだろ、これ。

/func/の下も.htaccessで遮断してないので.inc読めちゃうし...。

581 名前:nobodyさん mailto:sage [04/02/16 17:19 ID:???]
でも、あんまりおっぴろげると鯖缶が悪いのにこっちがパクられちゃうんだよね。



582 名前:nobodyさん mailto:sage [04/02/17 01:52 ID:???]
訂正されとる
ここ見たのかねw

583 名前:582 mailto:sage [04/02/17 01:53 ID:???]
javascriptのエラーがうざいが、printenvは消えとる

584 名前:nobodyさん mailto:sage [04/02/17 21:42 ID:???]
なんでも入りの新しいサーバーになってる。
でも結局、どのモジュールも古いな。
なんでわざわざ古いモジュール使ってるんだろ?

uptime.netcraft.com/up/graph?site=www.nagatanien.co.jp

585 名前:nobodyさん mailto:sage [04/02/18 07:43 ID:???]
2/15から2/16いっぱいまでずっとダウンしていたな。。

たかがこのエラーの修復ぐらいで何でそんなに時間がかかるのかと
不思議だったが、何とOSの入れ替えをしてたのか...w
相変わらずHTTPS開いているし
証明書、localhost.localdomainだし(Turboのときはsnakeoilのヤツだった)

エンジニアとしてはレベル低いかもw


586 名前:nobodyさん mailto:sage [04/03/05 22:55 ID:???]
質問です。

Solaris+PostgreSQL不明+PHP不明を使っています。
TIMESTAMP型のカラムへPHPのフォームで入力した値を入れようとするとエラーで、データが登録できません。
ちなみに入力しようとした値をそのままpsqlコマンドで入力したら正常に登録出来ました。

Linux+PostgreSQL7.3+PHP4.3.1の場合、同じソースで問題なく利用できました。
SQLとPHPのバージョンが確認できていなくあれですがこれは何が悪いのでしょうか?


587 名前:nobodyさん mailto:sage [04/03/05 23:25 ID:???]
釣は放置で

588 名前:nobodyさん mailto:sage [04/03/06 01:30 ID:???]
さっがっそうぜ!ドラゴンボール!!

589 名前:nobodyさん mailto:sage [04/03/06 16:09 ID:???]
釣りと思われるくらいに簡単な問題なんですか。。。
ぐぐってみてもそれらしい問題が出てこなかったんだけどなぁ。
ヒントだけでも下さい。。。

590 名前:nobodyさん mailto:sage [04/03/06 16:23 ID:???]
www.google.co.jp/search?q=%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%BE%E3%81%99

591 名前:nobodyさん mailto:sage [04/03/06 18:20 ID:???]
あー失礼しました。
エラー内容は下記の通りです。
Warning: pg_query() [function.pg-query]: Query failed: ERROR: parser: parse error at or near "00" at character 37 .
で、実際にpg_queryに渡しているのは、
INSERT INTO date VALUES ('2004-03-06 00:00:00')
です。

値の渡し方がマズイのでしょうか?



592 名前:nobodyさん mailto:sage [04/03/06 18:59 ID:???]
>>591
テーブル構造カモーンΨ(゜∀゜)Ψ

593 名前:nobodyさん mailto:sage [04/03/06 19:07 ID:???]
>>591
> 実際にpg_queryに渡しているのは、
> INSERT INTO date VALUES ('2004-03-06 00:00:00')
> です。
ほんとか?

594 名前:nobodyさん mailto:sage [04/03/06 20:12 ID:???]
>>592
失礼しました。テーブル構造です。
sql_test=# \d date
Table "public.date"
Column | Type | Modifiers
--------+-----------------------------+-----------
date | timestamp without time zone |

>>593
pg_queryに渡した変数をそのまま変数で書き出してペーストしたので間違っていないかと思います。
問題点を明確にする為にTIMESTAMP部分を抜き出して下記のような感じでテストしています。
現在手元にSolarisをいじれる環境がないので、アドバイス結果をすぐには試せないのですが、
RedHatの鯖ではこれで問題なく動きました。
Solarisの鯖では何故か>>591のようなエラーが。。。

<?php
$inc_pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";

$string = 'dbname=sql_test';
$db['handle'] = pg_connect ($conn);

$pg['exec_id'] = pg_query ($db['handle'], $pg['sql_query']);

pg_close ($db['handle']);

print 'sql =>' . $pg['sql_query'];

?>

足りない情報がありましたら出せるだけ出しますので、よろしくおねがいします。

595 名前:586 mailto:sage [04/03/06 20:16 ID:???]
>>594
スクリプトで一部間違ってました。

>$string = 'dbname=sql_test';
>$db['handle'] = pg_connect ($conn);
-----
$conn = 'dbname=sql_test';
$db['handle'] = pg_connect ($conn);


596 名前:586 mailto:sage [04/03/06 20:20 ID:???]
訂正をなんどもすみません。

>$inc_pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";
-----
$pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";


597 名前:nobodyさん mailto:sage [04/03/06 21:53 ID:???]
SQLインジェクションが非常に気になるが、それは置いといて、

pgsqlのバージョンは、select version(); で確認できる。
phpもpnpinfo();でわかる。

で、ひょっとしたらYMDじゃなくて、MDYに設定されているのかも?
確認方法があったと思うが失念。
'03/06/2004 00:00:00'でやるとどうなるかな。

598 名前:586 mailto:sage [04/03/06 23:54 ID:???]
>>597
アドバイスありがとうございます。
SQLインジェクションについてはまだ考えてません。
それはおいおい学習していきたいと思います。

バージョン情報の確認とMDY形式の入力を試してみたいと思います。

599 名前:nobodyさん mailto:sage [04/03/07 17:08 ID:???]
show DateStyle; とか
でもどっちで明らかな奴は自動で判別するけどな

600 名前:nobodyさん mailto:sage [04/03/08 04:17 ID:???]
>>498

Mac OS X 10.2.8,PostgreSQL 7.4.1,PHP 4.3.4で
全てソースをコンパイルして環境を作っていたんですが、
同じ現象に悩まされました。
ただ、

ld: unknown flag: -export-symbols

なわけだから、

Makefile の該当行でそのフラグを指定してる箇所を削って
次のようにしたら make は成功しました。

EXTRA_LDFLAGS = -L/usr/local/pgsql/lib


601 名前:nobodyさん mailto:sage [04/03/08 04:18 ID:???]
>>497 だったみたい



602 名前:586 mailto:sage [04/03/08 21:02 ID:???]
Solaris鯖はPostgresは7.1とPHP4.3.1でした。
それで'03/06/2004 00:00:00'の形式で入力しましたら無事にDBに登録されました。
アドバイス、本当にありがとうございました。
これで次に進めます。

603 名前:S.N [04/03/11 20:48 ID:Gs6PweG/]
春日井市の方にある藤山台幼稚園の園長先生の名前を知ってる方いらっしゃいませんか?
知ってたら教えて下さい。宜しくお願いします。

604 名前:nobodyさん [04/03/13 01:00 ID:36IkPElZ]
Linux+PostgreSQL7.3+PHP4.3.1での話なんですが
同環境の鯖からpg_dumpallしたファイルを
psql -f しようとしたら
「\connect: FATAL 1: IDENT authentication failed for user "xxxx"」
と怒られてぐぐった結果
pg_hba.confのlocalをall trustにしたんですけどまだ同じ症状なんです。
他に権限設定するファイルってあったら教えてください。
あと自宅鯖ですがpg_hba.confのlocalをall trusって危険ですか?


605 名前:ネットdeDVD(・∀・)♪ ◆uRDVDsgexc mailto:sage [04/03/13 01:06 ID:???]
PHPってすごいんですね・・・

606 名前:nobodyさん mailto:sage [04/03/14 14:23 ID:???]
>>604
よくわからんけど、ラージオブジェクトは使ってる?
pg_dumpall -g > "filename"
で、グローバルデータのバックアップはやった?

607 名前:nobodyさん [04/03/15 11:56 ID:u5uDbosW]
>>606
ラージオブジェクトは使ってないんです、
オプションは-fだけ付けてダンプでした…、
もう一度新鯖の方、DB初期化からやり直してみるカナ…。

608 名前:nobodyさん mailto:sage [04/03/15 13:16 ID:???]
ml.postgresql.jp/pipermail/pgsql-jp/2002-September/002592.html

609 名前:nobodyさん [04/03/16 03:09 ID:0I5atoz5]
>>608
すいません、initdbしちゃいました。
(そしたらあっさり動きました!)
今回のトラブル中でgoogle引いているなかで一つ気になったのが
hba.confでのlocalの設定の書き方なんですが、
どこだか忘れましたがあるサイトで
local  all  all  trust
ってー書き方しているページがあったんですが
ml.postgresql.jp/pipermail/pgsql-jp/2002-September/002592.html
とかオンラインマニュアルなんかは
local  all  trust
ですよね?
見間違えかナア?

610 名前:nobodyさん [04/03/16 03:10 ID:0I5atoz5]
失礼、お礼を書き忘れた!!
606さん
608さん
どうもありがとうございました!

611 名前:nobodyさん mailto:sage [04/03/16 08:31 ID:???]
>>609
7.3あたりで 項目が増えたんじゃなかったかな?
changesを見てマジっすかって思った記憶があるよ。



612 名前:nobodyさん [04/03/18 05:39 ID:zQ2yHGPu]
>>611


pg_hba.conf の詳細は、PostgreSQL のドキュメントの 6.1. The pg_hba.conf fileにあります。



セカンダリパスワードが廃止されました。
USER カラムが追加されました。
データベースとユーザをカンマ区切りで列挙できるようになりました。 また、+グループ名でグループを、 @ファイル名でデータベース名またはユーザ名を記述したファイルを指定できるようになりました。
キーワードsamegroupが追加されました。

だそうです。
www.us.postgresql.org/users-lounge/docs/7.3/postgres/client-authentication.html

613 名前:nobodyさん mailto:sage [04/03/20 09:22 ID:???]
PHPもPostgreSQLも今日から挑戦してみる新参者です。

┌─┬─┬─┐
│○│△│×│
├─┼─┼─┤
│◎│□│◇│
└─┴─┴─┘
TABLEを用いてDBの値を上記のように表記したいのですが
PHPとPostgreSQLの組み合わせの定石などありますでしょうか。

PHP変数のスコープ範囲をグローバルとして確保するなら
SQLから変数へ一度に値を確保しておいて
<TABLE><TR><TD><?echo $変数1?></TD><TD><?echo $変数2?></TD>......
などとできそうかなと考えたのですけれど、下策でしょうか。


614 名前:nobodyさん mailto:sage [04/03/20 10:06 ID:???]
>>613
プログラミングそのものが始めてというならそれでも構わんが、
とりあえずやって慣れないとな。

次ステップとして、foreach文でループしながら書き出す。
その次は、PEARのHTML_Tableを使って書き出す。
また、その次はテンプレートを使って書き出す。

手法はいろいろあるから、技術レベルとサイトの規模に合わせて
使い分けすりゃいいべ。

615 名前:nobodyさん mailto:sage [04/03/20 11:25 ID:???]
>614
つまり各個別で変数をひとつずつ出力するよりも
タグまで出力することを一区切りとして実装した方が
負荷が少ないということになるのですね。

テンプレートは自分でクラスを作ればいいということでしょうか。
HTML_Tableは<TBODY>や<COL>要素が出力されないようなので
自分で作ってみようと思います。
ありがとうございました。


616 名前:nobodyさん [04/03/22 16:39 ID:QoPkBfoi]
webから入力されたe_mailアドレスをDBに貯めておいてcronで一定時に
配信するプログラムを作ろうと思ったんですがそのcronで呼ばれる方のphpは
コマンドライン版(プログラムの頭に#/×××/×××/php とか付く奴)にあたると思うんですが
デバグ時にコンソールから直で呼び出した時にエラーをモニタにだしたいんですが
なにかオプション付けて実行とかどなたかご存知でしょうか?

617 名前:nobodyさん mailto:sage [04/03/22 17:05 ID:???]
>>616
PHPのマニュアルの PHPをコマンドラインから使用する を見てみれ。

618 名前:616 [04/03/23 04:32 ID:PH/L9hMF]
>>617さん
#!/usr/bin/php -qを頭につけて
クーロンと直接実行と両方試したんですが
エラーもはかずに配信もされないんですが
コマンドライン版特有のデバグ方法等ありましたら
url等情報頂けたらありがたいです。

619 名前:nobodyさん mailto:sage [04/03/23 05:59 ID:???]
>>618
617ではないが、
MTAのログは?

620 名前:616 [04/03/23 18:38 ID:zP9z4yZ0]
>>619
/var/log/mail_logには一切メールを送った形跡なし…。
何故エラーすら吐かないんだろう?

621 名前:nobodyさん mailto:sage [04/03/23 19:03 ID:???]
>>620
メール送信処理のかわりにファイル作成してみるとか
そのファイルに変数の値とか出力したらいろいろわかる可能性も



622 名前:616 [04/03/23 20:48 ID:zP9z4yZ0]
>>621
ドモです、さっそくやってみます。


623 名前:nobodyさん [04/04/06 12:05 ID:irRO9IOr]
質問です。。。

Postgresのビット演算についてお力をお貸しください。
text_a varchar(5) と宣言してある所に 00110 の文字列が入っています。
それに対して 00010 の文字列で&演算したいのですが、エラーになってしまいます。

■エラーが出た部分(一部抜粋)
WHERE ( CAST( text_a AS bit ) & B’00010’ ) > B’00000’

■エラー文
varchar から bitへの変換ができないといわれます。
何かこれを回避する方法または別の手段が無いでしょうか?
お力をお貸しください。


624 名前:nobodyさん mailto:sage [04/04/06 13:28 ID:???]
>>623
ビット型に変換しなくとも。
WHERE (text_a::int & '00010'::int) > 0
で、目的は達成すると思われ。


625 名前:623 mailto:sage [04/04/06 14:36 ID:???]
>>624
アドバイスありがとうございます。
早速やってみます!

626 名前:623 [04/04/06 14:48 ID:irRO9IOr]
>>624
結果報告です。
ERROR: Cannot cast type 'varchar' to 'int4'
でダメでした。とほほ

627 名前:624 mailto:sage [04/04/07 16:53 ID:???]
text 型からint型にはキャスト出来たので、Varchar型も出来ると思っていた。

(text_a::text::int & '00010'::int) > 0
ならどぉよ。

628 名前:623 mailto:sage [04/04/07 19:14 ID:???]
>>627
できました!
::text::int 2重に変換できるんですね。
勉強になりました、ありがとうございました。

629 名前:nobodyさん mailto:sage [04/04/07 22:11 ID:???]
ダウンキャストなのかコンバートなのか分からなくなってくるな。

630 名前:nobodyさん [04/04/18 00:22 ID:jle0qDKt]
DBサーバとWebサーバを物理的に同一の
マシンで兼用させることは出来るのでしょうか?
その場合IPが一緒になると思うのですが試したことのある方がいたら
教えてください。

ハードディスクを2つのパーティションに切って、片方をDBサーバ
OS:Linux
DB:Postgres
もう片方をWebサーバにしようと考えています。
OS:Win系
HTML、PHPで携帯サイトもどきを作ろうと考えています。

資金の都合があり、一台のPCで済ませようとしているのですが
根本的にありえない質問でしたらお許しください。
実際のサイトではまずありえない環境なのはわかっています。
他サイトを調べたのですが情報を得ることが出来ませんでした。
最後に来たのがここなわけで・・・。

631 名前:nobodyさん mailto:sage [04/04/18 00:25 ID:???]
>>630
>実際のサイトではまずありえない環境なのはわかっています。
おいおい



632 名前:nobodyさん mailto:sage [04/04/18 00:42 ID:???]
>>630
なぜDBとWeb両方Linuxで動かさないんだ?

633 名前:nobodyさん [04/04/18 00:49 ID:gbPENzjB]
( ゚д゚)ポカーン

634 名前:nobodyさん mailto:sage [04/04/18 00:50 ID:???]
>>630
うるさいよマルチ野郎
pc5.2ch.net/test/read.cgi/hp/1082203621/17

635 名前:630 [04/04/18 01:32 ID:jle0qDKt]
>>634
すみません。ルール違反と知りつつもマルチしてしまいました。

>>632
仕事でやっている環境に合わせて勉強したかったもので。

>>631
説明不足でした。すみません。
公式サイト等ではサーバー負荷を考慮してDBとWebサーバを
別々にするので、ほとんど無いという意味で書き込みしました。
非公式サイトの開発・運用経験をお持ちの方ならやり方を
知っているのではないかと思い質問させてもらいました。

634のリンクさきのスレに書き込んでいただいた方のおかげで、
なんとか出来るかもしれないことがわかりましたので、
今色々と調べています。

636 名前:nobodyさん mailto:sage [04/04/18 01:41 ID:???]
>>635
PC初心者板へ行ってくださいな。
そして「2つのパーティションに別々のOSを入れて同時に走らせたい」と言うんだよ。

637 名前:nobodyさん [04/04/18 02:54 ID:XCZiYJqw]
「札」という文字をテーブルに入れようとすると
次のようなエラーが出ます

Warning: pg_query(): Query failed: ERROR: invalid byte sequence for encoding "EUC_JP": 0x8e44

どうすればよいのでしょうか?

638 名前:nobodyさん mailto:sage [04/04/18 04:06 ID:???]
「札」が8E44になるのはSJISの時でないのん?
そりゃDBも往生しまっせ

639 名前:nobodyさん mailto:sage [04/04/25 13:29 ID:???]
set client_encoding to 'sjis';


640 名前:nobodyさん [04/04/26 02:10 ID:WthorSeH]
>>639
それやったけど駄目でした・・・

641 名前:nobodyさん mailto:sage [04/04/27 23:01 ID:???]
mb_convert_encoding('札','EUC-JP','SJIS')すれ



642 名前:nobodyさん [04/04/28 01:20 ID:v4hgreAJ]
>>641
できました。
ありがとうございます。

643 名前:nobodyさん [04/05/01 13:52 ID:mFnw69ow]
ERROR: could not extend relation "hogehoge": No space left on device
HINT: Check free disk space.

ってエラーが出るのですが何が原因ですか?
サーバースペースは余ってる筈なんですけど、、、。

644 名前:nobodyさん [04/05/01 14:09 ID:jvss00O+]
PHPとCGIを同じファイルで使う事は可能ですか?

645 名前:nobodyさん [04/05/01 17:49 ID:wi9QOksv]
また難解な質問が来たな…。>644

とりあえず「可能」と答えておこう。
質問の意味がまったく分からないけど。


646 名前:nobodyさん mailto:sage [04/05/02 20:46 ID:???]
>>644
>>645
こういうことじゃない?
-hatena.cgi------------------------------
open(IN, "datafile.txt");
while ($xx = <IN>) { print $xx; }
close(IN);
<?php
$fp = fopen('write.txt', 'w');
fputs($fp, "****\n");
fclose($fp);
?>
----------------------------------------
だったら俺の知ってる限りでは無理

647 名前:nobodyさん mailto:sage [04/09/11 05:17:25 ID:???]
Postgresの配列型を、PHPの配列にする時どうしてる?
正規表現とかな?

648 名前:nobodyさん mailto:sage [04/09/11 05:24:59 ID:???]
{}取り除いて、,でexplode

649 名前:nobodyさん mailto:sage [04/09/11 13:54:57 ID:???]
>>648
{",", "}"}とかに対応できない悪寒

650 名前:nobodyさん mailto:sage [04/09/11 15:50:56 ID:???]
>>647-649
が解決できたら PostgreSQL の配列型は HTML のチェックボックスを
格納するのに使えそうだね。

651 名前:nobodyさん mailto:sage [04/09/11 18:00:56 ID:???]
>>649
再帰呼出を使えば出来るでしょ。



652 名前:651 mailto:sage [04/09/11 18:08:47 ID:???]
スマソ勘違いしてた。
デリミタと囲い子の問題ね。

653 名前:nobodyさん mailto:sage [04/09/11 18:15:03 ID:???]
>>651
多次元配列じゃなくて、特種文字の扱いが問題だと思うのですが・・・・。
preg_match_allやpreg_splitでも正しくパースするのは難しそう。
#PostgreSQLのソースにヒントがあるかな?
PEAR MDBのキャスト機能で配列型も変換してくれるようになったら嬉しいな。

654 名前:653 mailto:sage [04/09/11 18:16:21 ID:???]
ちょっと遅かった... orz

655 名前:651 mailto:sage [04/09/11 18:24:02 ID:???]
>>653
fgetcsvの第一引数が文字列であるような関数があれば可能なんだよな。

656 名前:653 mailto:sage [04/09/11 21:16:41 ID:???]
>>651
自分もそれ考えてた。
一次元の配列に限定すれば、両端の{}を削ったのを一時ファイルに書き出して
fgetcsvすれば","もうまく扱えるはずだけど、オーバーヘッドが大きいし
それ以前にそんなコード書きたくない。
fgetcsv自体がバギーかつ仕様がコロコロ代わってるのも困りもの。

一次元の配列で、数値しか格納しないという前提なら>>648でいけるし、
それだけでもけっこう使えるとは思う。

配列型を活かしたクエリを発行しないならserializeしてTEXT型で保存
→fetchしたデータをunserializeで十分なわけだけど。

657 名前:nobodyさん mailto:age [04/09/25 02:40:26 ID:???]
質問させてください
pl/pgsqlを触り始めたのですがエラーに悩まされております
下記のように引数にテーブル名をいれて動かそうとすると
エラーになってしまいます。テーブルの実名をそのまま入れた時は動きました。
うまく動かす方法はないでしょうか?
よろしくお願いします。


CREATE OR REPLACE FUNCTION test_function(text) RETURNS INTEGER AS '

DECLARE
IN_table_name ALIAS FOR $1;
data_cnt INTEGER DEFAULT 0;
rec RECORD;
BEGIN

FOR rec IN SELECT * FROM IN_table_name LOOP
data_cnt := data_cnt + 1;
END LOOP;

RETURN data_cnt;
END;
'
LANGUAGE 'plpgsql';


658 名前:nobodyさん mailto:sage [04/09/25 03:12:19 ID:???]
>>657
CREATE OR REPLACE FUNCTION test_function(text) RETURNS INTEGER AS '

DECLARE
IN_table_name ALIAS FOR $1;
data_cnt INTEGER DEFAULT 0;
rec RECORD;
sql TEXT;
BEGIN
sql := ''SELECT * FROM ''||IN_table_name ;
FOR rec IN EXECUTE sql LOOP
data_cnt := data_cnt + 1;
END LOOP;

RETURN data_cnt;
END;
'
LANGUAGE 'plpgsql';

659 名前:nobodyさん mailto:sage [04/09/25 03:18:53 ID:???]
よくわかりました! ありがとうございます
早速試して見ます

660 名前:nobodyさん mailto:sage [04/10/12 21:01:41 ID:???]
わけあって
httpd.confのデフォルトキャラクタセットSHIFT_JISなのね。
postgreはもちEUCなんだけど
PHP使ってなんかするとき問題あっか?

661 名前:nobodyさん mailto:sage [04/10/26 03:37:10 ID:???]
SET client_encoding=SJIS;



662 名前:661 mailto:sage [04/10/26 03:40:51 ID:???]
寝ぼけてレスしたけど、よく見ると半月も前じゃん

663 名前:nobodyさん mailto:sage [04/10/26 15:42:23 ID:???]
わはは、なんかワロタ。

そもそもhttpd.confのDefaultCharsetとPostgreSQLのEncodingは全く関係ないし、
せめて気にするなら、PHPの内部コードと>>660の頭だな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef