[表示 : 全て 最新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. ]
語りません?

445 名前:nobodyさん mailto:sage [03/06/24 12:22 ID:???]
>>444
www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=sql-select.html

446 名前:444 mailto:sage [03/06/24 13:02 ID:???]
>>445どうもです。
ひぇ〜、読んではみたのですが、、、よく分かりませんです。
PostgreSQLとMySQLで使えるSQL文は結構違うのでしょうか?
取りあえず私が検索した範囲ではselect * into outfileで使っているのは
MySQLの方でした。
他の方法でも良いのですがテーブルデータをフォルダに書き出すには
どうすれば良いでしょうか?重ねてよろしく。

447 名前:nobodyさん mailto:sage [03/06/24 14:18 ID:???]
>>444
ttp://www.postgresql.jp/document/pg732doc/reference/sql-copy.html

448 名前:444 mailto:sage [03/06/24 15:00 ID:???]
>>447何度もすみません。
どこかのQ&Aにもレンタルサーバーでは普通無理と書いて有ったのですが
実際COPYを使ってみると
You must have Postgres superuser privilege・・・
と出てしまいます。

本当に何度もすみませんが、
postgreではselect into outfileは使えない(?)。
COPYはそれなりの権限が無いと使えない。
と言うことでしょうか、、、


449 名前:nobodyさん mailto:sage [03/06/24 15:58 ID:???]
>>448
COPY table TO stdout ...

450 名前:444 mailto:sage [03/06/24 17:49 ID:???]
>>449
すみません、かなり調べたつもりなのですが、、、
stdoutへ出力されたデータはどこに有るのでしょうか。

そこを何とかもう一度お願いします(汗;

451 名前:名無しさん@Emacs mailto:sage [03/06/24 19:06 ID:???]
つか、ファイルに出力するなら、

COPY table TO '/tmp/file.txt';

だろ。


452 名前:444 mailto:sage [03/06/24 19:11 ID:???]
>>451さん、どうも。
448にも書きましたが、(詳しく書くと)
ERROR: You must have Postgres superuser privilege to do a COPY directly
to or from a file. Anyone can COPY to stdout or from stdin.
Psql's \copy command also works for anyone.
と出ます。
確かにstdoutを使えと書いてるようですが、使い方が分からなくて、、、

453 名前:nobodyさん mailto:sage [03/06/24 19:19 ID:???]
phpPgAdminでダンプ表示させたのをコピペはだめ?



454 名前:444 mailto:sage [03/06/24 19:32 ID:???]
>>453さん、どうも。
phpPgAdmin、ちょっと調べてみましたが、これが用意されてるところでしか
使えないのですよね??
私の使ってるレンタルサーバーにも簡単なGUIツールが有りますがダンプは
できません。
また、プログラムで自動実行したいので、かえってGUIは不便なんです。

455 名前:451 mailto:sage [03/06/24 21:06 ID:???]
>452
PostgreSQLのSQLコマンドであるところの COPY コマンドと
psqlコマンドで使う \copy コマンドは別モノでつ。
COPYコマンドはバックエンドサイドでファイルに落としまつ。
\copyコマンドは、クライアントサイドでファイルに落としまつ。

COPYコマンドは言われている通り、バックエンドのsuperuser権限が
必要ですが、\copy コマンドでは必要ありません。psqlで

\h copy

と、

\?

とすると、それぞれの説明が出まつ。

結論としては「\copyを使え」ってことで。


456 名前:444 mailto:sage [03/06/24 23:28 ID:???]
>>455さん、どうも。
なんとなくしか分かってないのですが、私の使ってるレンタルサーバー
では「psqlは使えません」とのことでした。
皆さん色々と教えて頂きありがとうございます。
もう少し勉強して出直します。


457 名前:名無しさん@Emacs mailto:sage [03/06/25 01:48 ID:???]
>454
多分、CGIみたいにブラウザに表示させることにして、
テキストベースのブラウザ(w3mとかlynx)使ってファイルに落とすのが一番早い。

と思う。結論として。


458 名前:444 mailto:sage [03/06/25 10:07 ID:???]
>>457さん、どうも。
なるほど「泥臭いけど何か問題ある?」と言うような方法ですね。
奥の手に取っておきます。

459 名前:nobodyさん mailto:sage [03/06/26 09:56 ID:???]
>>458
ファイルの書き込み権限があれば以下の方法が使えるかも?です
例えば、CGIをテストするためにスクリプトとかを転送
できてるのであれば、fopen の"w"でファイルに書けます
#!/usr/local/bin/php -q
<?php
include("dbconnect.inc");

 $db = new DbConnect();
 $keyword = "php";
 $file = $keyword . ".txt";

 if(!($o = fopen($file, "w"))) {
  print "$file open 失敗\n";
  exit(1);
 }

 $sql = sprintf("SELECT name FROM t WHERE keyword='%s'", $keyword);
 $rs = $db->doQuery($sql);

 for($i=0; $i<pg_numrows($rs); $i++) {
  $str = sprintf("%s\n", pg_result($rs, $i, "name"));
  fwrite($o, $str);
 }
 fclose($o);
 $db->doClose();
?>

460 名前:458 mailto:sage [03/06/28 11:12 ID:???]
>>459さん、どうもです。
遅レスすみません。でも、できそうな気がします。
(まだ分かってないところも有りますが)やってみます。
ありがとうございました。

461 名前:nobodyさん [03/07/04 12:48 ID:Hr/HESMY]
現行のPHPマニュアルに
> 同じconnection_string引数で2回 pg_connect()関数がコールされた場合、新規の接続 はオープンされません。
とありますが、実験してみるとまさにそのとおりの動作で困っています。

固有のDB接続がつくれないとトランザクションが破綻するかとおもうのですが、なにか勘違いしてますか?

462 名前:nobodyさん mailto:sage [03/07/04 14:13 ID:???]
それ、pg_pconnect()の説明じゃない?うちのまぬあるが古いのかな。
それとトランザクションとは全く別次元の話。

おそらく トランザクションの意味を勘違いしていると思われ。

463 名前:461 mailto:sage [03/07/04 15:01 ID:???]
接続が共有だとトランザクションの合間に
他のPHPセッションからのクエリが割り込む可能性があるとおもうので<ここが勘違い?
問題ありということです。

ttp://www.php.net/manual/ja/function.pg-connect.php
マニュアルはここから読めるんですが、英語マニュアルでも同様でした。



464 名前:自己レス mailto:sage [03/07/10 18:21 ID:???]
>>463
pg_connect(connection_string, PGSQL_CONNECT_FORCE_NEW);
で解決しました。

465 名前:nobodyさん [03/07/11 23:10 ID:P/TCYNuE]
ポストグレスってクエリー実行に対する
エラーコードがないって本当ですか?

(しょうがないので)
今はpg_execの返り血がFALSEなら
pg_errormessageでエラー文字列を
とって、パターンマッチングして分岐、
みたいなキタねぇコードを書いてます。

チェックをプログラム側に持たせるか
DBの制約に持たせるかっていう設計
方向のレスも歓迎。


466 名前:nobodyさん mailto:sage [03/07/11 23:29 ID:???]
> エラーコードがないって本当ですか?
本当でつ。
以上。

467 名前:nobodyさん mailto:sage [03/07/11 23:37 ID:???]
>>466
ドモでつ。


468 名前:山崎 渉 mailto:(^^) [03/07/15 11:07 ID:???]

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

469 名前:nobodyさん mailto:sage [03/07/18 15:24 ID:???]
Warning: pg_pconnect() unable to connect to PostgreSQL server: FATAL 1:
Sorry, too many clients already in

上記のエラーの対処の仕方を教えてください。
あんまり詳しくないので聞きたいことがあれば調べて書きます。
お願いします

470 名前:nobodyさん mailto:sage [03/07/18 15:49 ID:???]
同時接続数を増やす。

471 名前:nobodyさん mailto:sage [03/07/18 15:59 ID:???]
今postgresql.confを見たんですが
全部#でコメントアウトされてるみたいです(^^;
ちと調べて接続数を増やしてみます

472 名前:nobodyさん [03/07/27 01:15 ID:TsfwKHg5]
ラージオブジェクトの格納、引出(表示)、削除、などのやり方について
詳しいサイトあったら教えて下さい。

自分なりに探したのは、
ttp://homepage2.nifty.com/~chairo/html/installation/webapp/webapp.html

ttp://www.geocities.co.jp/SiliconValley-Sunnyvale/2287/doc/funto13.html
↑ここくらいですが、削除のやり方とかのってないす。

473 名前:nobodyさん mailto:sage [03/07/27 15:37 ID:???]
PHP+PostgreSQLで接続されているクライアントのDBデータを1分周期で更新するには
クライアントから定周期でサーバーへ更新要求を行わないとできないのでしょうか?
サーバーサイドだけでは無理でしょうか?



474 名前:nobodyさん mailto:sage [03/07/27 16:12 ID:???]
>>473
クライアント以外のどこに更新用のデータがあるのかと小一分問い詰(ry
(言葉の定義は置いておいて、) サーバからクライアントにデータ要求のトリガーを起こさせたいってこと?

475 名前:nobodyさん [03/07/27 18:49 ID:0cmBAsiG]
>>474
書き方が悪くてすいません。
やりたい事は有料サイトのポイント管理のような事で、接続されたクライアントの
ポイントを1分周期で減算させたいのです。
このような機能はやっぱりクライアントから定周期で更新要求をサーバーへ
リクエストしないと無理なんですかね?
タイマーや定周期処理みたいなものでPHPやPostgreSQLでできないですか?


476 名前:nobodyさん [03/07/28 00:28 ID:Jw2a8NaM]
>>475
waitする関数作って(標準であったっけ?)、
1分毎に特定のフラグ立っているレコード(ログイン中みたいの?)を、
updateするplpgsqlを実行しておけばいいんじゃないの?

それか、
サーバーとクライアントをどういう意味で使ってるかわからないけど、
サーバーマシン上でcronで実行するのはどう?


477 名前:_ mailto:sage [03/07/28 00:56 ID:???]
homepage.mac.com/hiroyuki44/

478 名前:nobodyさん mailto:sage [03/07/28 16:03 ID:???]
>>475
サービスの要求毎に今の時刻を記録するのを基本とし
A. 前回の時刻から1分未満なら記録しない。
B. 1分以上なら記録する。その時に1ポイント減らす。
こんなのは?


479 名前:山崎 渉 mailto:(^^)sage [03/08/02 02:23 ID:???]
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

480 名前:ぼるじょあ ◆ySd1dMH5Gk mailto:(^^) [03/08/02 04:52 ID:???]
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

481 名前:nobodyさん [03/08/11 14:14 ID:gq467PzP]
PostgreSQL+PHPでBLOGとか掲示板作って
運営されたことのある人とかいます?

記事や、コメントはTEXTで格納してると思うんですが、
量が増えてきたときの負荷ってどんなもんですかね。
せっかくDB使ってるんで、検索とかもできるようにしてると思うのですが、
量が増えたときにTEXTから検索はやっぱ時間かかりますか?

482 名前:nobodyさん mailto:sage [03/08/11 15:40 ID:???]
>>481
仕事でやってるのなら、
テキスト検索エンジンの業者に比較資料を出してもらうとか。
そこまでだったらタダだとおもうし。

483 名前:nobodyさん mailto:sage [03/08/11 15:42 ID:???]
>>481
どういう検索をしようとしているのかわからないけど、
おそらく記事の検索なんだよね?
RDBはそういう検索には向かないと思うよ。
全文検索系のものを別に入れるのが普通だと思う。




484 名前:. mailto:sage [03/08/11 17:18 ID:???]
>>481
うちは PHP + Postgres で記事を管理。
cron で定期的に html に書き出してそれを namazu に食わせて全文検索できるようにしてる。
MySQL の全文検索とかってどうなんだろう。今は特に案件が無いので調べてないけど。

485 名前:nobodyさん mailto:sage [03/08/11 17:47 ID:???]
>MySQL の全文検索とかってどうなんだろう。

8万件のデータを検索させたら,中間一致検索で2秒ぐらい掛かってたのが
0.5秒切った。

486 名前:. mailto:sage [03/08/11 18:03 ID:???]
>>485
おおっ。やっぱ MySQL だけあって速いのね。
日本語とか通るのかな。ちょっとぐぐってみるか。

JAVA Developer 2003年6月号より転載 MySQL4の全文検索に迫る
www.zdnet.co.jp/developer/0307/03/dvn01.html

日本語に対応させるには形態素解析ロジックを組み込まなきゃいけないみたいね。
ほほう、河馬屋二千年堂さんとかも、結構前からいろいろやってるんだ。さすが。

デフォルトで日本語対応になったら、一気に普及しそうな予感・・・。

487 名前:nobodyさん mailto:sage [03/08/11 18:16 ID:???]
>>486
>河馬屋二千年堂さんとかも、結構前からいろいろやってる

あ、>>485はそれをPHP用に直してやってみた結果です。

488 名前:山崎 渉 mailto:(^^) [03/08/15 22:37 ID:???]
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

489 名前:nobodyさん mailto:age [03/08/18 01:33 ID:???]
age

490 名前:nobodyさん [03/08/19 11:31 ID:lIsPsTRV]
num | str
-----------
1 | a
2 | b
4 | c
5 | b
3 | a
1 | c
3 | a
: :

こんなテーブルがあったとして、
・num>3の総数
・num>3 and str='a'の総数
の2つを1回のSQLで同時に取得できますでしょうか?
(SELECT count(*)を2回するよりも軽いSQLで)

491 名前:nobodyさん mailto:sage [03/08/19 12:01 ID:???]
>>490
select count(*), count(case when str = 'a' then 1 else null end) from hogetbl where num > 3

早いかは知らん。

492 名前:490 [03/08/19 12:47 ID:oCHs6Pb7]
>>491
試してみましところ、微妙早いみたいです。
ありがとうございます。


493 名前:nobodyさん mailto:sage [03/09/22 06:55 ID:???]
xreaでpostgresを使ってるんですが、
処理時間のかかるDB操作を行うと、
DBにアクセスしたまま、phpスクリプトだけタイムアウトして
終了するようです。
この場合、DBへの接続は残ったままになってしまうんでしょうか?



494 名前:nobodyさん mailto:sage [03/09/22 07:15 ID:???]
というのは、現在、
Warning: pg_connect(): Unable to connect to PostgreSQL server: Sorry, too many clients already
となって全くDBに繋がらなくなってしまいまして、、、
DBがxreaにあるのでどうしたものかと。。。

495 名前:nobodyさん mailto:sage [03/09/22 07:22 ID:???]
ゾンビのような接続が残っていたらどうしよう。

496 名前:nobodyさん [03/10/09 20:52 ID:lBy2Nsd4]
MySQLで作られたサンプルコードをPostgreSQL対応のものを作ろうとしているのですが、
気をつけることありませんか?

497 名前:nobodyさん mailto:sage [03/10/10 13:54 ID:???]
MacOSX 10.2.8なんですが、PHPのソースからのインストールでつまづいています。
ttp://www.entropy.ch/software/macosx/php/
当初は上記のサイトのPHPパッケージを使っていたのですが、これだとmbregexが有効になっていないので。
PHP-usersを調べてみるとPostgreSQLをソースからのインストールして成功した例があったので(元々ソースから入れていたんですが念のため)ここからやり直し。
make checkでエラーが出ましたが、それでもPostgreSQL 7.3.4はインストールできました。(readline 4.3をソースからインストール後)
しかしPHP 4.3.3のインストール段階でmake時に以下のエラー。

ld: unknown flag: -export-symbols
make: *** [libs/libphp4.bundle] Error 1

一応configureのオプションはこんな感じです。
./configure --with-pgsql=/usr/local/pgsql --with-apxs=/usr/sbin/apxs --without-mysql --enable-mbstr-enc-trans --enable-mbstring --enable-mbregex --enable-versioning --enable-trans-sid

どうしたものでしょうか。

498 名前:nobodyさん mailto:sage [03/10/10 14:13 ID:???]
>>497
僕の環境(OSX 10.2.8, gcc3.3, Postgresはentropy.chのパッケージ)では
make の前に sudo ranlib /usr/local/pgsql/lib/libpq.a が必要だったのと(最初の一回だけでOK)
configure のオプションに --with-openssl=/usr を加えないといけませんでした。
あと、--with-apxs=/usr/sbin/apxs を指定したときも make でコケて、
--with-apxs だけ(パス指定なし)ではいけました。
参考になれば幸いです。

499 名前:nobodyさん mailto:sage [03/10/10 14:22 ID:???]
おっと、pgは自前でコンパイルされてるんですね。
よく読んでませんでした、スマソ。
それなら --with-apxs の修正だけでOK...かな?

500 名前:nobodyさん mailto:sage [03/10/10 15:03 ID:???]
>>498
sudo ranlib /usr/local/pgsql/lib/libpq.aの記述はここにもありましたね。
ttp://semicolon.jp/ussy/
で、configureのオプションで、--with-apxsだけ、--with-openssl=/usrを加えてやってみましたがまた同じエラーです。
再インストール時に特に気をつけなければいけない点などありますか?特定のファイルやディレクトリは必ずリネーム(or削除)しておかなければならない、とか。
前に入れたものが残っていて、そこで引っかかってるのかとも思いまして。

501 名前: [03/10/10 16:42 ID:eMmbcoMO]
PHP Nuke って PostgreSQl でも動くと思い込んでいたんだけど、
実は移植作業中?
phpnuke.org/
spiral303.com/php-nuke/

502 名前: [03/10/10 17:06 ID:eMmbcoMO]
F-Board 掲示板
www.php-j.com/scripts/bbs/fboard.php
おお、〜これは便利そうかも。インストールしてみよっと。
スレッドフロート型のほうがいいんだけど…

503 名前: [03/10/15 14:57 ID:P4ZVyYvK]
haitaka.com/keijiban/treebbs.cgi?log=227
dbEasy の作者ってなくなっておられたんですね。
ご冥福をお祈りします。



504 名前:nobodyさん [03/10/20 21:25 ID:waXYXRrl]
telnetだとできるのに、なぜかPHP上からはinsert,delete等、
データをいじる実行文ができなくて困っています。(同一ユーザで)

[connect]→[insert]→すぐに同一スクリプト上で[select *]すると挿入できてるのに、
スクリプト終了後に確認してみると反映されていない。(エラーメッセージも出ない)

おかしいと思って、一度[insert]した後に明示的に[close]して、
[connect]し直してから[select *]すると、反映されていないことが分かりました。

接続がきれると変更点が元に戻ってしまうというのは、どういったところが
原因になっているのでしょうか?


505 名前:nobodyさん mailto:sage [03/10/20 21:35 ID:???]
ろーるばっく は?

506 名前:504 [03/10/20 23:08 ID:UOeO/1yp]
>>505
スクリプトには書いてないんですが、
勝手にろーるばっくする現象とかあるんでしょうか?



507 名前: [03/10/21 07:56 ID:cLTK9aL8]
telnet でってことは psql でってこと?
同じユーザって本当?
PostgreSQL のログ見てみたら?

508 名前:nobodyさん mailto:sage [03/10/21 09:59 ID:???]
もし BEGIN してたら、そのままCOMMIT or END しないで
closeしたらロールバックするかな

509 名前:nobodyさん mailto:sage [03/10/21 13:38 ID:???]
>>507,508
508さんの指摘どおり、
BEGINして、ENDせずに終了していました。
すみません。
ありがとうございました。

510 名前: [03/10/21 15:01 ID:cLTK9aL8]
>>509 あいや〜漏れも同じミスをしそうだった。
人の振り見て我が振りなおせ、だなぁ…

511 名前:nobodyさん mailto:sage [03/10/21 22:08 ID:???]
>>501
一応、各種DBで動くようになってるようなんだけど、
中身を見るとMySQLでしか動かない。

最近のバージョンは、postgresql用のSQLが少しまとも
になってたけど、まだ古い部分があるんで、、、
フォーラム以外はなんとかなるかと、、、



512 名前:(;´Д`) [03/11/02 19:07 ID:iBTmJlep]
( ・ω・)∩
ちょっとしたクイズアプリケーションを作っています
クイズにはカテゴリがあり
そのカテゴリ毎に出題制限機能をつけたいと思います
DBのテーブルcategoryenabledには
categorynumber(1〜8までのカテゴリナンバー)
enabled(t or f)
のカラムがあります。

今思案しているのはUIにてカテゴリ名とチェックボックスを付け
その出題制限機能ページを開いた時にcategorynumber1〜8までの該当するenabledの値が
tだった場合に対応するカテゴリ名のチェックボックスにチェックが入るようにしたいです

次にsubmitボタンを押したときにそのチェックの有無に応じてカテゴリ名に対応する
categorynumberのenabled値に対して更新クエリーを発行したいのです
どなたか教えてください
⊂⌒~⊃。Д。)⊃

513 名前:nobodyさん mailto:sage [03/11/04 03:41 ID:???]
pg_fetch_object でデータを取得したとき、
テーブル名.プロパティのデータを取得するにはどうしたらいいんでしょう?
たとえば、$obj->table.name とするとPHPの構文エラーが出ますよね?



514 名前:nobodyさん [03/11/04 03:41 ID:qRLV45gQ]
 

515 名前:nobodyさん mailto:sage [03/11/04 11:24 ID:???]
>>512
チェックボックスを全て同じ名前にして、配列で取り出し、
SQL文のWHERE区でOR でつなげばいいと思う

って、categoryenabled がどうなってんのかさっぱりわからんが

516 名前:nobodyさん [03/11/22 22:30 ID:J3MEwjgU]
すいません。初心者なんですが、phpから、postgresへコネクト、できたら「接続できましたよ」と出したいんですが、
Fatal error: Call to undefined function: pg_connect() in /var/www/html/memberlist.php on line 8
上記エラーが出てしまいます。
このエラーは、PHPをrpmではなく、ソースからコンパイルしていれないとだめってこと、、
でしょうか。ちなみに、phpinfo()では、pgsql suportは出ていません。が、dbx、dba
というのは、あります。あと、configureのところに、 '--with-pgsql=shared' ともあります。
php.iniをいじれば良いんでしょうか。

517 名前:nobodyさん mailto:sage [03/11/23 00:09 ID:???]
>>516
たとえば、php や libphp4.so を ldd で表示させてみて
libpq.so は表示されるかい?

518 名前:nobodyさん [03/11/23 00:23 ID:kTbiV7p7]
>>517 下記コマンド実行。
ldd /usr/lib/httpd/modules/libphp4.so
ldd /home/(ユーザー名)/plugin/libphp4.so

ともに、libpg.soは表示されませんでした。
蛇足ですが、コンパイルがうまくいかなかった経緯があり、日経linux1月?付録のrpm(マルチバイト対応)で
今までやってました。postgresqlをやりたくなりいじりはじめた次第です。

519 名前:nobodyさん [03/11/23 00:34 ID:kTbiV7p7]
>>517
ちなみに、findで調べたら、存在はしているみたいです。これを日も付けるような
作業をすればいいのでしょうか。
/usr/local/src/postgresql-7.3.2/src/interfaces/libpq/libpq.so
/usr/local/pgsql/lib/libpq.so

520 名前:nobodyさん mailto:sage [03/11/23 02:33 ID:???]
>>518
PostgreSQLのライブラリはインストールされてて
phpにはリンクされてない状況かな
(よく考えたらphpコマンド使うなら、php -m でもよかったな)
phpをMakeするのがいいと思う。特にPHPはリンクしなおしが多いので
どっちにしろソースからやっといたほうがいいと思うよ

521 名前:nobodyさん [03/11/23 03:14 ID:kTbiV7p7]
いつかは、やらねばと思ってましたが、ちょっと大変ですね。
がんばってみます。

522 名前:nobodyさん mailto:sage [03/11/23 03:16 ID:???]
>>519
pgsqlはソースからいれたんか。それならrpmでいれたphpには無理でしょ。たとえサポートしていたとしても。
--with-pgsql=shared じゃなくて、--with-pgsql=/usr/local/pgsqlになっとらんといかんのとちゃいまっか?

>>520のいうように、phpをソースから入れなおしが近道なきもするが、どうせapache(?)もrpmから入れたんかな?

523 名前:nobodyさん [03/11/23 10:46 ID:kTbiV7p7]
>522
そうです。apache&php=>rpm postgres=>tarでした。
コンパイルオプションが複雑に絡む場合は、関連するものすべてソースから
入れたほうがいい、、ということなんでしょうか。教訓として。



524 名前:nobodyさん mailto:sage [03/11/23 12:35 ID:???]
関連するものはヘッダとライブラリがあればいいよ
ヘッダとライブラリだってrpmで提供されてる場合が多いし

コンパイルオプションやリンクするライブラリが
変わることが多い場合はソースのがいいとは思う

パッケージのディレクトリ構成を/usr/localに一本化
したかったり使い分けがめんどくさいと思ったら
ソースから入れるのがいいかもね。慣れるとどっちでも
同じ感覚でインストールできるよ

525 名前:nobodyさん mailto:sage [03/11/23 23:04 ID:???]
>>523
/libにlibpq.so.*のリンクを作ってから、phpのrpmをインスコするとどうなるのだろう。
と、ふと思った。


526 名前:nobodyさん [03/11/24 09:18 ID:pzrePjyL]
psqlではふつーにselectで引っ張ってこれるんだけれども、
PHPからデータとってこようとすると、そこで処理が停止してしまうんです。
PEAR_DBを使っていたんでそのせいかともおもって、
pg_*で書き直して試してもやっぱり同じ。

データの内容は300近いWebページのソースです。
9割くらいのページは正常にfetchしてこれるんですが、残り1割が固まります。

mb_convert_kana/encodingでEUC-JPにノーマライズしてから格納しているんですが・・・。
っていうか、UPDATEできるのにfetchできないってどういうことなんでしょう。

527 名前:nobodyさん [03/11/27 19:56 ID:HaCIHFLT]
簡単なことかもしれないんですけど、postgresqlのカラムにdatetime型で
日付時刻が入ってまして、これをphpで「年/月/日/ 時:分」という形に
したいんですが、なんかそのものずばりの関数ってないでしょうか?
また、関数がない場合、こういう場合は普通どう処理するんでしょうか?
もし解説したWebページがあれば教えて下さい。


528 名前:nobodyさん mailto:sage [03/11/27 20:02 ID:???]
>>527
解説したページ
www.php.net/manual/ja/function.date.php

SQLでやっちゃうのもいいよ。そっちのやりかたはPostgreSQL付属のドキュメントをみてね☆

529 名前:nobodyさん mailto:sage [03/11/28 01:13 ID:???]
SELECT to_char(hoge_date, 'YYYY/MM/DD HH24:MI') FROM table;

530 名前:nobodyさん mailto:sage [03/11/28 01:44 ID:???]
>>526
> UPDATEできるのにfetchできないってどういうことなんでしょう

selectをEXPLAINしてみたら?たぶんSeq Scanじゃないかな。
UPDATEはWHEREにINDEX使ってるだろうからIndex Scanになってるはず。

select文にand index > 0 とか追加してIndex Scanさせれば早くなってタイムアウトしないんじゃねーですかい?

例えて悪いけど
SELECT to_char(hoge_date, 'YYYY/MM/DD HH24:MI') FROM table;
hoge_dateにkeyがなければこれも遅いと思います。

id integer primary key があるとするなら、

SELECT to_char(hoge_date, 'YYYY/MM/DD HH24:MI') FROM table where id > 0;
とすればちったー早くなると思います。

531 名前:527 [03/11/28 21:59 ID:UsQiFXqj]
528さん、529さん、530さんレスどうもありがとうございます。
kterm上でSQLを
select to_char(uptime, 'YYYY/MM/DD HH24:MI') from table;
とすると、無事、2003/11/27 21:30 と出力されました。
ただ、私はphpのスクリプト中で取得したいのです。
たとえば、imageというテーブルに
id serial, uptime datetime,
というカラムがあるとして(実際のカラムはもっと多いです。)、
insert into image(uptime) values('now');
とデータを入れています。このテーブルから日付時刻を
$sql="select * from image";
$rs = pg_query($db, $sql);
while ($data = pg_fetch_array($rs)) {
print("<td>".$data['id']."</td>");
print("<td>".$data['uptime']."</td>");
}
略~ print("<td>".$data['id'].":".$data['uptime']."</td>");~略
として 表の中に出力したいのですが
そのへんをもう少し教えていただけないでしょうか?          

532 名前:nobodyさん mailto:sage [03/11/28 22:25 ID:???]
>>531
$data['uptime'] = date("〜",$date['uptime']) とか、 --PHP date関数
select select to_char(uptime, '〜') as formatted_uptime from table とか。 -- SQL as句

533 名前:526 [03/11/29 05:22 ID:3dfgxKEK]
一応 EXPLAIN してみましたが、IndexScan であっさり。

で、いろいろ追ってみたのですが、
どうやらpostgresのヒープサイズをオーバーしてるせいみたいでした。
いろんなサイズのを試してみたら、ちょうど32kくらい以上だと、
同様の現象がでるようでした。

おそらく text 型にでかいの突っ込んでるからだとおもいます。
実質上限がないものだとばかり思ってたんで、がっくり。

ラージオブジェクトならうまくいくだろうか・・・。

にしても解せないのは、なんで psql ではできて、php からはできないのか。
7.1以前のまんまなのかなぁ。



534 名前:nobodyさん [03/11/29 15:10 ID:3wwIsq6W]
すいません。データベースを作ろうとして、エラーが出てしまうのですが、
何か間違っていますでしょうか。
ユーザpostgres作成。dataというディレクトリを作成。オーナーをpostgresに。
そして、postgresになってから、initdbで作成。ここで躓きます。
#initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale ja_JP.euc.

fixing permissions on existing directory /usr/local/pgsql/data... ok
creating directory /usr/local/pgsql/data/base... ok
creating directory /usr/local/pgsql/data/global... ok
creating directory /usr/local/pgsql/data/pg_xlog... ok
creating directory /usr/local/pgsql/data/pg_clog... ok
selecting default max_connections... 10
selecting default shared_buffers... 50
creating configuration files... ok
creating template1 database in /usr/local/pgsql/data/base/1... FATAL: XX000: f
ailed to initialize lc_messages to ""
LOCATION: InitializeGUCOptions, guc.c:1866

initdb: failed


535 名前:nobodyさん mailto:sage [03/11/29 19:01 ID:???]
#ってことは、postgresになってないと思うのだが・・・

536 名前:nobodyさん [03/11/29 19:14 ID:3wwIsq6W]
>535
534です。
すいません。postgresになっても、同じ名でした。
あと、そのエラーのあとに、同じコマンドを打つと、下記のようなエラーが出ます。

initdb: directory "/usr/local/pgsql/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/pgsql/data" or run initdb with an argument other than
"/usr/local/pgsql/data".

537 名前:nobodyさん [03/11/29 19:29 ID:3wwIsq6W]
以下のリンクにあるようにやったら、とりあえず作成だけはうまくいきました。
⇒ttp://ml.postgresql.jp/pipermail/pgsql-jp/2003-November/006615.html
例)
$LANG=C initdb --encoding=EUC_JP --no-locale
$LANG=C pg_ctl start
でも、即行でデータベースがシャットダウンしてしまいます。
[postgres@linux data]$ LANG=C pg_ctl start
postmaster successfully started
[postgres@linux data]$ LOG: database system was shut down at 2003-11-29 19:16:3
3 JST
LOG: checkpoint record is at 0/9B0B8C
LOG: redo record is at 0/9B0B8C; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 534; next OID: 17142
LOG: database system is ready


538 名前:nobodyさん mailto:sage [03/11/29 19:30 ID:???]
すでにdataディレクトリがあるんでしょ。まず消すところから試してくれ

539 名前:nobodyさん [03/11/29 19:39 ID:3wwIsq6W]
すいません。ちゃんとできました。落ち着いて、一個一個確かめてやったらできました。
空回りやローでゴメンゴ

540 名前:nobodyさん [03/12/01 19:27 ID:GUQR4nbL]
すいません、テーブルの結合についておしえてください。
addres(id serial, name varchar(32), company_id int, sityouson_id int),
company(id serial, company_id int, company varchar(32)),
sityouson(id serial, todouhuken varchar(32), sityouson_id int, sityouson varchar(32))
という3つのテーブルがあり、
name, company, todouhuken, sityouson
というふうに取得したいのですが、どのようにするのがよいでしょうか?
例えば、
addres(id serial, name varchar(32), company_id int),
company(id serial, company_id int, company varchar(32)), から
name,companyとして取得するには
select addres.name, company.company where addres.company_id=company.company_id
でいいと思うんですが、tableが3つのときがわかりません。
select addres.name, company.company, sityouson.todouhuken,
sityouson.sityouson where addres.company_id=company.company_id and
addres.sityouson_id=sityouson.sityouson_id
とかでしょうか?

541 名前:nobodyさん [03/12/01 19:47 ID:YrMX5TT+]
homepage3.nifty.com/hot-hot/7254.html

542 名前:nobodyさん [03/12/02 01:18 ID:Dm3L1AqD]
phpの設置についてお伺いしたいのですが…。

php の実行を許可する.htaccess の記述は
どのようになるのでしょうか。

その設定の必要のないサーバで実行していたものを
今度設定が必要なサーバに移すことになりまして
教えていただけませんでしょうか。

543 名前:nobodyさん mailto:sage [03/12/02 01:26 ID:???]
>>542
httpd.confと同じように、
AddType application/x-httpd-php .php
でいいよ。
<Directory>で囲った方が気持ちいいかな。

php.iniで設定するようなやつはマニュアルの「はじめに - 設定」を参照してみそ。



544 名前:nobodyさん [03/12/02 01:43 ID:Dm3L1AqD]
>>543 さん
ありがとうございます。
早速やってみます。



545 名前:542・544 [03/12/08 15:04 ID:bUzy6m4p]
問題なく稼動中です。
ありがとうございました。






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

前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