PHP + PostgreSQLat PHP
PHP + PostgreSQL - 暇つぶし2ch459:nobodyさん
03/06/26 09:56
>>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
03/06/28 11:12
>>459さん、どうもです。
遅レスすみません。でも、できそうな気がします。
(まだ分かってないところも有りますが)やってみます。
ありがとうございました。

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

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

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

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

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

URLリンク(www.php.net)
マニュアルはここから読めるんですが、英語マニュアルでも同様でした。

464:自己レス
03/07/10 18:21
>>463
pg_connect(connection_string, PGSQL_CONNECT_FORCE_NEW);
で解決しました。

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

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

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


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

467:nobodyさん
03/07/11 23:37
>>466
ドモでつ。


468:山崎 渉
03/07/15 11:07

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

469:nobodyさん
03/07/18 15:24
Warning: pg_pconnect() unable to connect to PostgreSQL server: FATAL 1:
Sorry, too many clients already in

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

470:nobodyさん
03/07/18 15:49
同時接続数を増やす。

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

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

自分なりに探したのは、
URLリンク(homepage2.nifty.com)

URLリンク(www.geocities.co.jp)
↑ここくらいですが、削除のやり方とかのってないす。

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

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

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


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

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


477:_
03/07/28 00:56
URLリンク(homepage.mac.com)

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


479:山崎 渉
03/08/02 02:23
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

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

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

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

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

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


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

485:nobodyさん
03/08/11 17:47
>MySQL の全文検索とかってどうなんだろう。

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

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

JAVA Developer 2003年6月号より転載 MySQL4の全文検索に迫る
URLリンク(www.zdnet.co.jp)

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

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

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

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

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

489:nobodyさん
03/08/18 01:33
age

490:nobodyさん
03/08/19 11:31 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さん
03/08/19 12:01
>>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 oCHs6Pb7
>>491
試してみましところ、微妙早いみたいです。
ありがとうございます。


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

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

495:nobodyさん
03/09/22 07:22
ゾンビのような接続が残っていたらどうしよう。

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

497:nobodyさん
03/10/10 13:54
MacOSX 10.2.8なんですが、PHPのソースからのインストールでつまづいています。
URLリンク(www.entropy.ch)
当初は上記のサイトの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さん
03/10/10 14:13
>>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さん
03/10/10 14:22
おっと、pgは自前でコンパイルされてるんですね。
よく読んでませんでした、スマソ。
それなら --with-apxs の修正だけでOK...かな?

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

501:
03/10/10 16:42 eMmbcoMO
PHP Nuke って PostgreSQl でも動くと思い込んでいたんだけど、
実は移植作業中?
URLリンク(phpnuke.org)
URLリンク(spiral303.com)

502:
03/10/10 17:06 eMmbcoMO
F-Board 掲示板
URLリンク(www.php-j.com)
おお、~これは便利そうかも。インストールしてみよっと。
スレッドフロート型のほうがいいんだけど…

503:
03/10/15 14:57 P4ZVyYvK
URLリンク(haitaka.com)
dbEasy の作者ってなくなっておられたんですね。
ご冥福をお祈りします。

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

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

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

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


505:nobodyさん
03/10/20 21:35
ろーるばっく は?

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



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

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

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

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

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

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



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

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

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

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

514:nobodyさん
03/11/04 03:41 qRLV45gQ
 

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

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

516:nobodyさん
03/11/22 22:30 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さん
03/11/23 00:09
>>516
たとえば、php や libphp4.so を ldd で表示させてみて
libpq.so は表示されるかい?

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

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

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

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

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

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

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

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

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

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


526:nobodyさん
03/11/24 09:18 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 HaCIHFLT
簡単なことかもしれないんですけど、postgresqlのカラムにdatetime型で
日付時刻が入ってまして、これをphpで「年/月/日/ 時:分」という形に
したいんですが、なんかそのものずばりの関数ってないでしょうか?
また、関数がない場合、こういう場合は普通どう処理するんでしょうか?
もし解説したWebページがあれば教えて下さい。


528:nobodyさん
03/11/27 20:02
>>527
解説したページ
URLリンク(www.php.net)

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

529:nobodyさん
03/11/28 01:13
SELECT to_char(hoge_date, 'YYYY/MM/DD HH24:MI') FROM table;

530:nobodyさん
03/11/28 01:44
>>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 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さん
03/11/28 22:25
>>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 3dfgxKEK
一応 EXPLAIN してみましたが、IndexScan であっさり。

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

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

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

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

534:nobodyさん
03/11/29 15:10 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さん
03/11/29 19:01
#ってことは、postgresになってないと思うのだが・・・

536:nobodyさん
03/11/29 19:14 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 3wwIsq6W
以下のリンクにあるようにやったら、とりあえず作成だけはうまくいきました。
URLリンク(ml.postgresql.jp)
例)
$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さん
03/11/29 19:30
すでにdataディレクトリがあるんでしょ。まず消すところから試してくれ

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

540:nobodyさん
03/12/01 19:27 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 YrMX5TT+
URLリンク(homepage3.nifty.com)

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

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

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

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

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

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



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

546:nobodyさん
04/01/05 17:50 ksHHV4PL
すみません、PHPのMySQL関数にある、
mysql_data_seek(intRs,intRow) この関数なんですけど
postgreSQLで同じようなのないでしょうか?


547:nobodyさん
04/01/05 22:18
>>546
pg_result_seek() かな?

つか、カーソル使えよ。

548:nobodyさん
04/01/10 20:36
PHP + PostgreSQLでオススメの書籍はありますか?

549:nobody
04/01/12 21:34 DtxerTTK
シーラカンス?


550:nobodyさん
04/01/12 21:47
マンモス?

551:nobody
04/01/12 22:22 DtxerTTK
10日でできる…ってゆうのを詠んだ。
具体的ではあったがPHPの一部分しかあつかってなかった…
webのほうが為になる気が…

552:nobodyさん
04/01/13 00:46
とりあえず赤、青マンモス本とシーラカンス本があればいいんでは。
あとはwebでどうにかなる。

553:nobodyさん
04/01/13 01:31
URLリンク(www.postgresql.jp)
これが結構良かったけど

554:nobodyさん
04/01/23 17:29
オンラインショッピングサイトやってるんですけどお客さん(店長さん)に

商品を編集するのに管理画面でやるのは面倒くさいので、
CSVでダウンロードしてエクセルで修正してまたアップロードしたい

って言われたんですけど、UPDATE に対応した COPY コマンドみたいなことってできませんでしょうか?
PHP で一行ずつ商品番号を調べて UPDATE でもいいんですが、時間がかかってしまうので。。。
何かいい方法があったら教えてください。おながいします。

555: 
04/01/23 17:47
555get, zuzaa

556:nobodyさん
04/01/23 20:29
> PHP で一行ずつ商品番号を調べて UPDATE でもいいんですが、時間がかかってしまうので。。。

1000件程度であればそんなに時間かからないと思うんですけど、そんなに商品の数多いんですか?

557:nobodyさん
04/01/23 21:21
>>556
ちょっと待つ感じですね。まぁお客さんに遅いと感じたら小分けにしてくださいと言っときます。お邪魔しますた。

558:nobodyさん
04/02/11 22:13 EReQ7yHa
TeraTermで文字化けしちゃうんですが・・・
TeraTermの端末設定は送受信ともEUCにしてEUC_JPにしたDBを開きます。

# psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
testdb | postgres | EUC_JP

# psql testdb
# \encoding EUC_JP

testdb=# SELECT * FROM report;
number | title | report
--------+-------------+---------
1 | <A5><BF><A5><A4><A5><C8><A5><EB>1 | <CB><DC><CA><B8>1
2 | <A5><BF><A5><A4><A5><C8><A5><EB>2 | <CB><DC><CA><B8>2

とまぁこんな調子です。
ホントは 1,タイトル1,本文1と入っているのに。
ちなみにPHPからブラウザを通してみると正常に見えました。
TeraTermの問題でしょうか?

559:nobodyさん
04/02/13 10:50 JC2NxhSZ
Postgresってローカルにインストールできますか?

560:nobodyさん
04/02/13 10:57
>>559
逆にお伺いしますが、リモートにインストールってどうやってやるんでしょう?
あ、それともグローバルの反対のローカルかな?んな訳ないか…。

561:nobodyさん
04/02/13 12:09 JC2NxhSZ
ええと、自分のパソコンのWindowsに入れたいのですが。

562:nobodyさん
04/02/13 12:29
>>558
Pagerが日本語通らないのではないか
日本語パッチ当たったless か more 入れて見たら

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

564:nobodyさん
04/02/14 16:06
ドキュメントが整理されている

565:nobodyさん
04/02/14 16:38
>>561
Windowsは無理。MySQLなら可能。

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

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

英語だけど、ここが参考になります。
URLリンク(www.entropy.ch)

568:nobodyさん
04/02/14 19:29
おいらが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さん
04/02/14 19:30
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さん
04/02/14 19:35
あとはPostgresが自動起動するように/private/etc/hostconfigを設定するのと
/Library/StartupItemsに関連ファイルを入れればおしまい。

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

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

572:nobodyさん
04/02/14 19:40
スマソ、>>571
/usr/local/pgsql/lib/libpq.a
ですた。

573:nobodyさん
04/02/15 16:03 Axezk+8k
永谷園のホームページ、ダウン中。。
URLリンク(www.nagatanien.co.jp)

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

URLリンク(www.nagatanien.co.jp)

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

574:nobodyさん
04/02/15 17:42
まだデバッグ中なんだろ

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

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


577:nobodyさん
04/02/15 21:55
デフォルトで外部サーバから接続できないからいいだろ

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

579:558
04/02/15 22:44
>>562
失礼しました~

580:nobodyさん
04/02/16 01:53
つか、apache, PHPとも古すぎだろ、これ。

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

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

582:nobodyさん
04/02/17 01:52
訂正されとる
ここ見たのかねw

583:582
04/02/17 01:53
javascriptのエラーがうざいが、printenvは消えとる

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

URLリンク(uptime.netcraft.com)

585:nobodyさん
04/02/18 07:43
2/15から2/16いっぱいまでずっとダウンしていたな。。

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

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


586:nobodyさん
04/03/05 22:55
質問です。

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

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


587:nobodyさん
04/03/05 23:25
釣は放置で

588:nobodyさん
04/03/06 01:30
さっがっそうぜ!ドラゴンボール!!

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

590:nobodyさん
04/03/06 16:23
URLリンク(www.google.co.jp)

591:nobodyさん
04/03/06 18:20
あー失礼しました。
エラー内容は下記の通りです。
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さん
04/03/06 18:59
>>591
テーブル構造カモーンΨ(゜∀゜)Ψ

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

594:nobodyさん
04/03/06 20:12
>>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
04/03/06 20:16
>>594
スクリプトで一部間違ってました。

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


596:586
04/03/06 20:20
訂正をなんどもすみません。

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


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

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

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

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

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

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

600:nobodyさん
04/03/08 04:17
>>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さん
04/03/08 04:18
>>497 だったみたい

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

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

604:nobodyさん
04/03/13 01:00 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
04/03/13 01:06
PHPってすごいんですね・・・

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

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

608:nobodyさん
04/03/15 13:16
URLリンク(ml.postgresql.jp)

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

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

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

612:nobodyさん
04/03/18 05:39 zQ2yHGPu
>>611


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



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

だそうです。
URLリンク(www.us.postgresql.org)

613:nobodyさん
04/03/20 09:22
PHPもPostgreSQLも今日から挑戦してみる新参者です。

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

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


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

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

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

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

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


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

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

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

619:nobodyさん
04/03/23 05:59
>>618
617ではないが、
MTAのログは?

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

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

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


623:nobodyさん
04/04/06 12:05 irRO9IOr
質問です。。。

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

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

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


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


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

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

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

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

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

629:nobodyさん
04/04/07 22:11
ダウンキャストなのかコンバートなのか分からなくなってくるな。

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

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

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

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

632:nobodyさん
04/04/18 00:42
>>630
なぜDBとWeb両方Linuxで動かさないんだ?

633:nobodyさん
04/04/18 00:49 gbPENzjB
( ゚д゚)ポカーン

634:nobodyさん
04/04/18 00:50
>>630
うるさいよマルチ野郎
スレリンク(hp板:17番)

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

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

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

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

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

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

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

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

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

639:nobodyさん
04/04/25 13:29
set client_encoding to 'sjis';


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

641:nobodyさん
04/04/27 23:01
mb_convert_encoding('札','EUC-JP','SJIS')すれ

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

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

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

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

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

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


646:nobodyさん
04/05/02 20:46
>>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さん
04/09/11 05:17:25
Postgresの配列型を、PHPの配列にする時どうしてる?
正規表現とかな?

648:nobodyさん
04/09/11 05:24:59
{}取り除いて、,でexplode

649:nobodyさん
04/09/11 13:54:57
>>648
{",", "}"}とかに対応できない悪寒

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

651:nobodyさん
04/09/11 18:00:56
>>649
再帰呼出を使えば出来るでしょ。

652:651
04/09/11 18:08:47
スマソ勘違いしてた。
デリミタと囲い子の問題ね。

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

654:653
04/09/11 18:16:21
ちょっと遅かった... orz

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

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

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

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

657:nobodyさん
04/09/25 02:40:26
質問させてください
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さん
04/09/25 03:12:19
>>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さん
04/09/25 03:18:53
よくわかりました! ありがとうございます
早速試して見ます

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

661:nobodyさん
04/10/26 03:37:10
SET client_encoding=SJIS;

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

663:nobodyさん
04/10/26 15:42:23
わはは、なんかワロタ。

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

664:ド素人
04/11/23 11:23:13 3+AQgTJt
psqlで  \(バックスラシュ) をインサートしようとするとエラーになります。エンコードはEUC_JPなんですが、、、どうすればいいのでしょうか?


665:ド素人
04/11/23 11:36:12 3+AQgTJt
confのclient_encoding とかをEUC_JPとかにするんでしょうか?


666:ド素人
04/11/23 11:41:25 3+AQgTJt
寝ぼけて書いたけど、半月前の板じゃん、わはは。なんかワロタ。

667:ド素人
04/11/23 11:42:27 3+AQgTJt
とかい言いつつ、、レスを待ちつづける俺。
切羽詰ってたりして…

668:nobodyさん
04/11/23 11:45:21
sql書け。

\を\\に置き換えてるか?

669:ド素人
04/11/23 11:45:43 3+AQgTJt
マジ、だずけでほじぃ。。。

670:ド素人
04/11/23 11:47:21 3+AQgTJt
\を\\にしても同じでした。。エスケープってことですよね?

671:nobodyさん
04/11/23 11:50:13
insert table_name (hoge) values ('\\')

でinsert出来ない?

672:nobodyさん
04/11/23 11:50:49
insert into table_name ... だった

673:ド素人
04/11/23 11:52:21 3+AQgTJt
sqlはこんな感じでございます↓
$inData = array(
'id'=>$sh->dba->nextId('tbl_bbs_id'),
'bid'=>$HTTP_VARS['bid'],
'id_no'=>$aUser['id_no'],
'title'=>ココ→ '\\',
'body'=>$VARS['body'],
'del_flg'=>'N'
)

674:ド素人
04/11/23 11:54:36 3+AQgTJt
単純なSQLでinsertしてみたのですが、、同じでした。

675:ド素人
04/11/23 12:00:53 3+AQgTJt
dbが壊れてるんでしょうか?通常はありえないんでしょうか?

676:ド素人
04/11/23 12:03:12 3+AQgTJt
フィールドタイプが「text」なんですが、これは問題ないでしょうか?

677:nobodyさん
04/11/23 12:03:13
phpとsql、それぞれのエスケープで\\\\

678:ド素人
04/11/23 12:08:44 3+AQgTJt
ありがとうございました!!!!!!
は、、はいった。。涙が・・・

679:ド素人
04/11/23 12:14:09 3+AQgTJt
実はezのハートを入れようと、、2日寝ておりませんでした。。
^N\264の場合は ^N\\\\264に変えればでるのでしょうか?
もしも、ご存知でしたらご教授いただけますでしょうか?
場違いでしたら、退散いたします。。

680:ド素人
04/11/23 12:22:11 3+AQgTJt
nobody殿に感謝しつつ、退散いたします。
nobody殿、バンザーイ!バンザーイ!バンザーイ!

681:nobodyさん
04/11/24 09:19:58
どういたしまして^^;

682:nobodyさん
04/11/24 11:35:02
test

683:nobodyさん
04/11/26 07:18:01
nobodyknows

684:nobodyさん
05/02/23 08:53:54 mE2XQAit
あげ

685:nobodyさん
05/03/06 00:22:16 AGppAUzL
ちょっと詰まっていることがあるのですが、わかる方がおられましたらアドバイス願います。
環境は、Linux(CentOS4.0)、Apache2.0、PostgreSQL7.4、PHP4.3(mbstring、pgsql付き)です。

---page1.php---
<?php
$page = "ページ1";
require ("search.inc");
?>

---page2.php---
<?php
$page = "ページ2";
require ("search.inc");
?>

---search.inc---
<?php
$con = pg_connect("dbname=db");
$result = pg_query($con, "select * from table where page = '$page'");
# 以下、内容の表示
?>

という構成で、要するに
page1.phpでは、データベースからpageフィールドが「ページ1」のレコードを表示し、
page2.phpでは、データベースからpageフィールドが「ページ2」のレコードを表示する、ことを意図しています。

ところが、現在生じている問題は、
page1.phpでもpage2.phpでも、「ページ1」「ページ2」両方のレコードが表示されてしまうのです。

他のページでも同様にデータベースからの検索・表示を行っているのですが、
そちらは問題なく、「ページ1」と「ページ2」だけが両方混ざってしまいます。
1とか2とか全角数字が問題なのでしょうか。両方selectされてしまうのが不可解なのですが。

686:685
05/03/06 00:44:38
補足です。

■page1.phpを、以下のように書き換えても、結果は同じでした。

---page1.php(改)---
<?php
$con = pg_connect("dbname=db");
$result = pg_query($con, "select * from table where page = 'ページ1'");
# 以下、内容の表示
?>

■また、$pageがひらがな・カタカナ・漢字のみの場合は、正しくselectされます。

---page3.php---
<?php
$page = "ほげほげ";
require ("search.inc");
?>

■データベースの内容をチェックしましたが、
 pageフィールドにはきちんと「ページ1」「ページ2」という値が入っています。

687:nobodyさん
05/03/06 01:08:04
>>685
原因わからない(´・ω・`)ショボーン。
Postgresの設定いじってログにクエリを表示させて見てはどうだろうか。(既存のシステムだと無理だろうけど)

それとpage1.php page2.php page3.phpと分けないで
search.php?page=page1
とかしてやったほうがいいんじゃないか?

688:nobodyさん
05/03/06 01:32:40
ロケールが設定されているとか。
show lc_collate;
show lc_ctype;
辺り。

689:685
05/03/06 16:56:51
レスどうもありがとうございます。

>>687
> それとpage1.php page2.php page3.phpと分けないで

実際のpage1.php、page2.phpは、HTML部分が異なるので、別ファイルにする必要があるんです。

>>688
> ロケールが設定されているとか。

なるほど、それが原因ですね、きっと。
しかし、ロケールの設定についてちょっと調べてみたんですが、
何だか難しくてよくわかりませんでした・・・orz。
これからもっと勉強します。

ちなみに、「ページ1」「ページ2」の表記を「ページ1」「ページ2」と半角数字に変えてみたら、
きちんとselectされるようになりました。当面はこれでしのぐことにします。

FedoraCore2では、こういう問題は生じませんでしたから、
OSにも左右されるみたいですね。同じRedHat系なんですが。

690:nobodyさん
05/03/06 22:00:03
携帯サイト作ってるんですけど
開発環境のWEBサーバー(Apache2.0 Windows2000)では動作するんですが、
本番環境のWEBサーバー(Apache1.3 Linux)へ移すと「接続先のサーバは現在ご利用できません(502)」と出ます。

502のエラーとして調べた結果「ゲートウェイもしくはプロキシサーバが上流から無効なレスポンスを受け取った」とのことです。

このエラーの要因として考えられるのはHTTPD.CONFファイルの設定の違いでしょうか?
とすると、対処法として、本番環境のHTTPD.CONFを開発環境と同じにするしかないでしょうか?

691:nobodyさん
05/03/07 08:44:23
>>690
ここはPHP postgreSQL のスレです

692:nobodyさん
05/03/14 10:56:04
テーブルがなければ作る、というのはどういうやり方がスマートなんでしょうか。

693:nobodyさん
05/03/14 13:59:50
>>692
テーブル名一覧テーブルを参照して、テーブルが
無ければトランザクション内でテーブルの作成と
テーブル名一覧テーブルの更新を行う。

694:nobodyさん
05/03/17 08:48:05 6RtiKHZ9
学ぶのに最適なサイトを教えてください

695:nobodyさん
05/03/17 16:02:20
マニュアル+MLで

696:nobodyさん
05/05/12 17:12:14
一寸煮詰まってしまってまして、よろしければアドバイスいただけないでしょうか?
Select (Case When A.Field = '' Then 0 Else A.Field End)::integer From Table as A
というSQLを発行し、A.Fieldが''(空白文字列)だった場合0を出したいのですが、
invalid input syntax for integer:
と、エラーが出てしまいます。
これがもし、A.Fieldが''ではなく、NULLだったらうまくいくのですが。。
この問題を回避する何か良い方法はないでしょうか?

よろしくお願いします。

697:nobodyさん
05/05/12 22:55:49
>>696
A.Fieldは文字列ですよね。数値(integer)に変換できない文字列が含まれているんじゃ?

698:696
05/05/13 21:19:35
>697
レスありがとうございます。
そういう事ではなく、A.Fieldが’’(空白文字列)の場合にエラーが出るのですよ。
Select (Case When '' = '' Then 0 Else '' End)
とした場合0が出て欲しいのにエラーになっちゃうんですよね。ちなみにElseの後が1とかなら問題なく0が帰ってきます。
ThenやElseの後空白文字列がいけないのは分かったのですが、それを回避したいからCase使ってるのに駄目って
なぜだ~って感じなんです。
言葉足らずですいません。

699:nobodyさん
05/05/13 22:48:42
>>698
> Select (Case When '' = '' Then 0 Else '' End)

??? nanja korya?
何をしたいのか余計にワカランなった。

700:nobodyさん
05/05/16 22:49:41
>>698
SELECT (CASE WHEN field='' THEN '0' ELSE field END)

701:700
05/05/16 22:50:28
SELECT (CASE WHEN field='' THEN '0' ELSE field END)::integer ね。

702:nobodyさん
05/10/11 18:34:00 A0maUghJ
すいません、質問です。

Linux上にpostgresとPHPがインストールされていますが、
PHPからpgsqlを呼び出す事ができません。
phpinfo()で設定されてない事が確認できました。

で、調べて見た所オプションをつけてコンパイルしなおせば
使えるようになるみたいなんですが、
他に方法はありませんか?

Windowsだとphp.iniを書き直すだけで設定できたのですが
こういうのってLinuxだと無理なんですか?

703:nobodyさん
05/10/12 05:28:13
pconnect対策でpgpool入れたんだけどpgpoolにpconnectしても接続数大杉になるよね?

「pgpoolにはconnectで。postgresへの直connectより軽い」が正解?

704:nobodyさん
05/10/12 08:32:39
>>702
phpをどうやってインストールしたかによる
rpmならphp-pgsqlのパッケージだけを追加インストールすればよい
ソースからインストールしたのなら全部コンパイルしなおすかphpizeでext/pgsql/のみコンパイルして追加する

705:nobodyさん
05/10/13 21:19:25
phpはソースから入れる方がいいように思う。
バージョンによる挙動の違いとかあるから。
うかつにアップデートするとまずいことになる。

706:nobodyさん
05/10/18 17:46:31
portsでインスコしてportupgradeでアップデート終了
手抜きする為にFreeBSDを使うのが漏れのジャスティス(´・ω・`)

707:nobodyさん
05/10/18 20:16:46
yumやapt-getもあるでよ

708:nobodyさん
05/11/05 16:52:03 3i8SmZZ/
つーか、ちゃんとメンテナンスされてるパッケージシステムを使えばいいだけ。
PHP+DBなんてOSはどうでもいいし。

しかし、PHP+PostgreSQLなんて原価安い分買い叩かれて仕事稼げないのによくやるねえ。
SunEnterprise+Solaris+Oracle+iPlanet+WebLogicの仕事が一番稼げるよ。

709:nobodyさん
06/01/04 20:58:12 D32qMl2A
おまえらあけおめ

710:nobodyさん
06/01/06 14:57:06 XMuialze
PostgreSQL用の追加モジュールのpgsql.soをインストールしたいのですが、
phpizeコマンドが使えません。phpizeは/usr/local/binに入っています、
方法としては、/usr/local/src/php/ext/pgsqlに行き、phpizeを実行する、
と、bash:phpize:command not found となってしまいます。
まったくの初心者で、なにを治していいか分かりません、どなたかご指導願います。

711:nobodyさん
06/01/17 18:44:37
Fedora core4にPHP5.1.2、postgres7.3.4、apache2.2.0を放りこまにゃならんのだけど
インストールの順番って特に考えんでも問題なし??

…PHP5.1.2なんてまだ使いたくねぇよorz

712:nobodyさん
06/01/17 18:45:26 0H6x+8rL
ゴメン、ageてみる

713:nobodyさん
06/01/17 19:01:48
>>711
分けてあるから平気よ。

枯れた環境がいいならFC4なんて使うなよ。
顧客の要望でFC4なら諦めろ。

714:nobodyさん
06/01/17 19:27:58 0H6x+8rL
>>713
ありがとです。
FC4でデフォルトな装備品で気持ちよく開発したいもんだが、
隅から隅までお客サマの要望ときたもんだ(TT)
posgreをmakeしてるけどwarning吐きまくりだわ。いけるのか7.3.4
ready install!とか言われても不安が尽きないですよ。



715:nobodyさん
06/01/17 19:32:49
>>711
なんでわざわざ7.3.4なんだ?
クラは8.1.xの存在知ってる?改良点についても。

716:nobodyさん
06/01/17 19:33:43
>>711
俺はFC4じゃないけど、CentOS4に入れてみた。
PHP5.1.2、postgres8.1.2、apache2.2.0。
順番はApacheかPostgresが最初で、最後がPHP。


717:711
06/01/18 10:14:02
>>715
結構古くから使ってるDocomoのサイトなんだけど、
それのAU版を新しく作るんだわ。
まったく別にもう1つDBサーバー作るんだけど、
データの共有できる部分が多いからPostgresのバージョンは変えたく無いんだと。
クラの担当者本人が苦笑してたぐらいだからな~~orz
「サーバ担当チームが変更してくれん」ってさwww一体誰のこだわりなんだか

>>716
同じ順番になってる。なんかホッとしたー(・∀・)

昨日は私用で帰っちゃったので本日中に開発環境整えれるように頑張ります

718:716
06/01/18 10:40:20
>>717
データの共有出来る部分?
よくわからんけど、Postgres7,3,3からPostgres8.1.2に
データ移行したけど、全然問題なく簡単に出来たよ。
パフォーマンスも段違いだし、8にした方がいいよ。

719:711
06/01/18 11:24:09
>>718
分かっちゃいるんだけどねぇ…コレはお客サマのお告げなので…(TT)
もう本番サーバー設定しちゃったらしいし。しゃーないわ。



720:nobodyさん
06/01/18 23:58:58 BuFau/7y
PHPにはPostgresqlが似合ってるな(中途半端!)
PerlにはMysqlが似合ってるな(早い!安い!)
JavaにはOracleが似合ってるな(めんどくせー!結構金かかるな!)

PHP+Oracleの案件って見たことねえ
Perl+Postgresqlの案件もあんまり見たことねえ(たまにあるね)
Java+Mysqlの案件は見たことねえ

きっとコストと処理速度と規模で決まっちゃうんだろうな

721:nobodyさん
06/01/19 14:44:01
Oracle の JDBC ライブラリは普通にバイナリで出回ってるが
Perl や PHP から Oracle を引くにはドライバを make せんといかんので面倒がられる

PostgreSQL と Perl の組み合わせは、PL/Perl が最強だと思うんだが
現場で使われてるところを見たことがない

Java と MySQL は、よく知らないんだが
昔は UTF-8 対応が足枷になったりしてたのか?

722:nobodyさん
06/01/21 04:00:36
>>720
Java+Oracle を PHP + Oracle でリニューアルした案件は結構見る。

723:nobodyさん
06/01/26 03:40:56
PHP5.1のrpmが落ちてないなぁ。
エロイ人、お願いします。

724:nobodyさん
06/01/26 03:57:34
>>723
すれ違い。
ディストリビューションかかないと解らないし。

725:nobodyさん
06/01/29 19:06:11
Perlなら、Oracleについてくるじゃん。
あれって、Windowsだけだっけ?

726:nobodyさん
06/01/30 16:07:49
Oracle は Zend と提携したし

727:nobodyさん
06/01/30 23:33:48
しっかし 8.1 は速くなったのー。

728:nobodyさん
06/05/03 21:26:11
もはやMySQLよりも速い気がしますね。

729:nobodyさん
06/05/08 00:57:02
いや、実際速いよ。

730:nobodyさん
06/07/07 12:29:39 AUesg1Gs
はじめまして。
RedHatLinux8.0上でPHPとpostgreSQL7.2.3をつかって顧客管理システムでも
つくろうかなと思っていたのですが、PHPは正常にインストールができてpostgreSQLの
インストールした後の環境変数の設定をしなくてはいけないらしくて、ホームディレクトリ
ディレクトリのbashrcにスクリプトを追加しなくてはいけません。
このpostgreSQLのインストール後の設定についてどなたか教えていただけませんでしょうか?

ちなみに参考文献は
「php×postgreSQLでつくる最強webシステム」
です。
どうかよろしくお願いします。


731:nobodyさん
06/07/07 12:56:12 AUesg1Gs
先ほどの730のものです。
質問があいまいになっていたので、再度カキコさせていただきます。
postgreSQLのインストール行った後に、ホームディレクトリに

POSTGRES_HOME=/usr/local/pgsql/
export PATH="$PATH":/usr/local/pgsql/bin
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":POSTGRES_HOME/man

という内容を追加し、「source ~/.bashrc」を実行するとあるのですが、この
bashrcというファイルがどこにあるのかという事と、このホームディレクトリとは
はどこを指しているのかがよくわかりません・・・・

732:nobodyさん
06/07/07 12:58:10
>>730
また古い物を、
で、環境設定ならP87から書いてある通りで桶だと思うが。
viでもなんでもエディタでpostgresのホームディレクトリにある
本通りだと/usr/local/pgsql/.bashrc にP88の内容通りすりゃいい。

ログイン時に.bashrcを読み込んでくれないのなら.bash_profileの
中身を確認。RedHat系なら読み込んでくれると思ったが。

733:nobodyさん
06/07/07 13:08:50 AUesg1Gs
nobody様

ご助言ありがとうございます。
参考にさせていただきます!!

734:nobodyさん
06/07/07 14:56:02 AUesg1Gs
/usr/local/pgsql/.bashrc を書き換えたいのですが、bashrcというファイル名
のファイルが見つかりません。windowsのようにフォルダオプションに相当する
コマンドか何かあるのでしょうか?

735:nobodyさん
06/07/07 15:41:15
>>734
無ければ作ればいいんだけど・・?
通常は隠しファイルで見えないだけで、 ls -la とかやってみては?

736:nobodyさん
06/07/07 22:39:50
/usr/local/pgsql/.bashrcでいいの?

737:nobodyさん
06/07/08 09:08:12
>>736
ログインしたユーザーに環境変数をセットしてあげたいんでしょ?
だったら、その人のホーム直下に作らないとダメね。

 ~/.bashrc ね

738:nobodyさん
06/09/27 15:35:11
postgreSQL 7.3.1 + PHP
です。
$sql = "DROP TABLE IF EXISTS test";
pg_query($sql);

という感じで、 test というテーブルが存在する場合に DROP TABLEさせたいのですが
テーブルの存在はどのように判定したらよいでしょうか

上記では、pg_query がエラーを出してしまいます。

739:nobodyさん
06/09/28 02:43:52
IF EXISTS ってmysqlじゃないですか

740:nobodyさん
06/10/01 13:01:09
>>738
URLリンク(www.postgresql.jp)

741:nobodyさん
06/10/01 21:50:33
以下のコードで、pg_insert()のエラーが出力されないのですが、エラーを取る方法はあるのでしょうか?

//'bool'カラムでエラー
$data = array('number' => 3, 'bool' => 'trueee', 'time' => date('Y-m-d H:i:s'));

$res = pg_insert($con, 'test', $data);
if (!$res) echo pg_result_error($res);

----------------------------------------------------------

pg_query()の場合は正常にエラーが出力されます。

$date = date('Y-m-d H:i:s');
$res = pg_query($con, "insert into test(number, bool, time) values(5, 'trueee', '{$date}')");
if (!$res) echo pg_result_error($res);

Warning: pg_query() [function.pg-query]: Query failed: ERROR: invalid input syntax for type boolean: "trueee"

環境
 windows XP
 PHP 5.1.4
 Apache 2.0.58
 Postgres 8.1.4

または
 FreeBSD 6.1
 PHP 5.1.4 or PHP 5.2
 Apache 1.3.37
 Postgres 8.1.4

742:nobodyさん
07/06/26 15:17:35 KNA8dvka
phpから、db_dumpの実行方法がわかりません。
もしかして、「psql.exe」を呼び出して実行させるプログラムが別途必要になってくるのでしょうか?
psqlからなら、出来たのですが、、、


743:nobodyさん
07/06/26 15:25:27 KNA8dvka
具体的には「pg_dump」を実行させて、データのバックアップをとりたいのですが、
pg_dump test_db > database_name.sql
をPHPファイルのどこに記入したら良いのかわからないです。


744:nobodyさん
07/06/26 17:39:31
system()で実行したらどうでしょうか

745:nobodyさん
07/08/25 00:24:48
文字コードの変換は、
PostgreSQLのSET NAMES

PHPのmb_convert_encoding
のどちらでやるほうがいいのでしょうか?


746:nobodyさん
07/09/03 07:59:26 KucjbbQW
初の質問です。
今php+postgresql+fedoracore4でシステムを作っているんですが、
どうも原因がpostgresqlにあるとわかってきました。
自分はDBを作るときまず文字コードをeucに変えて入力するんですが
invalid byte sequence for encoding "EUC_JP": 0xe988
というエラーがでます。
PHPのソースはURLリンク(www.mywave.co.jp)
にあります。
ぜひ教えてください。


747:nobodyさん
07/09/03 13:19:55
>>746
いやです。
関係ないところを削って
30行以内に収めてから出直してください。

748:nobodyさん
07/09/04 02:28:15
>>746
マルチは死んでください

749:nobodyさん
07/09/09 02:29:17 zQ9Ko6j+
fedora core4でphp+postgresqlをやろうと思ったんですが
DBが認識してくれません。
DBの部分がエラーになるので、画面が真っ白です。
やった人いませんか?
DB認識はパッケージではだめなんでしょうか?
ちょっとわかりずらいかもしれませんが、よろしくです。


750:nobodyさん
07/09/09 09:10:26
apacheのエラーログにはなんて書いてありますか?

751:nobodyさん
07/09/09 11:02:45
氏ねバカ、と書いてある。

752:nobodyさん
07/09/10 06:56:33 iLiEDXXm
PHPのconfigure時にPostgresqlが組み込まれているかしりたいです。
fedora core4でパッケージでphpをイントールしたのですが。
組み込まれているのでしょうか?
またこれ追加はできないのでしょうか?
後php info();で見てみたんですが、
dbx support enabled
dbx version 1.1.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT SQLite
てでたんだがphpのconfigureの部分はなかった。
どうでしょうか?


753:nobodyさん
07/09/10 14:55:10
PostgreSQL(libpq) Version とか出てないのか?

754:nobodyさん
07/09/10 20:00:15
DB板のPostgreSQLスレに湧いていた馬鹿が、こんどはこのスレにきたか。消えろ。

755:nobodyさん
08/03/27 13:58:14
ユーザIDをキーに持つテーブルを作ってですね

SELECT * FROM TABLE1 WHERE USER_ID = 'T&E SOFT';

まあ、IDはサンプルですが、このように'&'を含む文字列を条件に指定すると結果が一行も返ってきません。
IDに対してpg_escape_stringをかけても結果は同じでした。
CSEやpgAdminではこのクエリーは普通に期待する結果を返してくれるのですが…。

何か特殊なエスケープ処理を行わなくてはいけないんでしょうか?
PostgreSQLはversion7.4
PHPは4.3.3
Apacheha2.0.46
です。

756:nobodyさん
09/05/15 11:17:54 WsVpM47h
質問です。
データベースに先生用テーブルと生徒用のテーブルがあります。
カラム名をtloginIDとsloginIDとして、
新規登録でログインIDの重複をチェックしたいと思っています。
SQL文を教えてください。
テーブル名は、teacherとstudentです。


757:nobodyさん
09/05/15 11:23:15
確認するけど、ログインIDの重複をチェックしてどう処理するの?
許可するの?弾くの?

758:nobodyさん
09/05/15 11:30:37
select count(tloginID) from teacher
select count(sloginID) from student で2以上なら重複あり

759:758
09/05/15 11:33:25
間違った
select count(*) from teacher where tloginID='hoge'

だな

760:nobodyさん
09/09/24 09:08:59 DwG28PME
トランザクションして select for update ってやれば、
selectした行はロックがかかって他の人はその行は参照もロックされて待たせられるのでしょうか?


761:nobodyさん
10/01/21 14:04:11 2fYoTKfz
いつも勉強させてもらっています。質問です。

いくつかのプロセスが残ってしまう問題で行き詰まりました。このような

hogehoge 31926 25387 0 12:04 ? 00:00:00 postgres: nanashi nanashi2010 192.168.00.00(37729) idle

のが数プロセス溜まってしまいます。
select * from pg_stat_activityとしてみても、確かにidleなものが確認出来ます。

PHP 4.3.2 + PostgreSQL 8.1.9 です。
pconnect関数、pgpoolも使ってません。

もし同様の問題についてご存じの方がいらっしゃいましたら、
アドバイスいただけるとありがたいです。
よろしくお願いします。

762:nobodyさん
10/01/21 20:19:55
いや問題じゃないので

763:nobodyさん
10/01/21 20:37:51 2fYoTKfz
>>762
仕様だ、ということですか?

764:nobodyさん
10/01/21 21:46:20
当然接続は明示的にcloseしてるよな
Apacheがプロセス持ってるからとか言うオチだったらぶっ飛ばすからな

765:nobodyさん
10/01/22 17:15:36 6+I3LoB3
>>764
もちろんしています。
Apacheプロセスについては、残っている場合とそうでない場合があり混乱しています。
通常、Apacheのプロセスが落ちれば残るはずは無いと思うんですが。

766:nobodyさん
10/12/02 19:36:47 JyGm6z0o
■環境
centos5.3
postgresql 8.1

URLリンク(www.hizlab.net)
上記よりsqlファイルをダウンロードし
以下を実行したのですが、エラーがでるのですがわかる人いますか?
2002年位に作られたページみたいなのでpostgresのバージョン違いのためでしょうか?

[www@localhost ~]$ createlang plpgsql -d inet_db
[www@localhost ~]$ psql -f /home/www/meibo.sql -d inet_db
psql:/home/www/meibo.sql:16: ERROR: function m_update_editdata() does not exist
CREATE FUNCTION
psql:/home/www/meibo.sql:29: ERROR: table "inet_job" does not exist
psql:/home/www/meibo.sql:37: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "inet_job_pkey" for table "inet_job"
CREATE TABLE
psql:/home/www/meibo.sql:41: WARNING: changing return type of function m_update_editdata from "opaque" to "trigger"
CREATE TRIGGER
psql:/home/www/meibo.sql:45: ERROR: sequence "seq_inet_profile_code" does not exist
CREATE SEQUENCE
psql:/home/www/meibo.sql:52: ERROR: table "inet_profile" does not exist

767:nobodyさん
10/12/03 09:15:27
存在しないってエラーが出て、その後作成しましたって出てるから作成されてるんじゃないの?
作成に失敗したってエラーが出てれば作成途中で終わってるだろうけど

768:nobodyさん
10/12/03 23:43:10
>>767
レスありがとうございます。
ソース(URLリンク(www.hizlab.net))
をよく見たところ以下のようにDROP ナニナニ している部分を
コメントアウトしたところエラーがでなくなりましたが
新たに作ったデータベースに
DROP ナニナニ する作者の意図はなんなのでしょうかね?

-- 修正日/修正者を更新するトリガプロシージャを作成
DROP FUNCTION m_update_editdata();
CREATE FUNCTION m_update_editdata() RETURNS OPAQUE AS '
省略
-- テーブルの作成
DROP TABLE inet_profile;
CREATE TABLE inet_profile (
省略
-- 職種マスタの作成
DROP TABLE inet_job;
CREATE TABLE inet_job (
省略
-- INET_PROFILE 用のシーケンスを作成
DROP SEQUENCE seq_inet_profile_code;
CREATE SEQUENCE seq_inet_profile_code
省略

769:767
10/12/04 00:37:08
それは初期化スクリプトの定番でしょ

コマンドラインから流し込んでDB初期化するときに、もし前のデータが残っていればそこで初期化が頓挫してしまう
先にDROPした上でCREATEすれば何度流し込んでも同じように初期化できる

770:nobodyさん
10/12/05 10:56:11
>>769
なるほど失礼しました。私が無知でした。
ありがとうございました。

771:電脳プリオン
12/01/02 22:52:37.95 BE:456084959-2BP(1960)

  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>479
            / ←>>384

772:nobodyさん
13/08/17 NY:AN:NY.AN
.          \\      ,土ヽ l 十  ├  ゝ‐、ヽ ll               尸  //
            \\  (ノ ) | Cト、.Cト、   ノ l_ノ よ  ̄ ̄ ̄ (⌒/   //
                   .....       .:_ -― ─- 、:.    ......
                  ..::⌒>.、:: ...::/::.::/::.:: ヽ::.::.\::....::x<⌒::.
              ::x-=≦.::.-=`ミO.:/:/:/|:./.:ハ::ヽ::`O::-=ミて`く⌒ヽ::
            ::, イ::ノ⌒'Z _⌒ Y彡::./V  j/ヽ::ハ.::.V::Y⌒/;^)- 入 \:
           ::/ :/八  '(:::::':,\ トV::./⌒     ⌒ヽ.::∨/,.::'::/  /:::∧  '\::
           ::/ `V::/ヽ\ \ :':, 八Ⅳ __    __ jハ:::l, :':::::, ′ /:::/   ̄ ノ\::
        ::〈   ,.:'::/   ヽ \ \:l:ハ| 〃⌒    ⌒ヾ ハ:|::::/  ,.イ:::/     ∠.::勹::
       ::/ ! :.'::::∧   |  ヽ  \ム .:::::  r ┐ ::::.,'ノ/  / /::/   |__:/::
     ::∠._jハ_ん:ヘ/}ノ /ヘ  ヽゝ_  ヽ ノ   イ/  /⌒ん'⌒)_>::
                     ̄   ̄`ヽ   `=≧r ‐i彡''´  /::     ̄
                      ::\ヽ   ` ´   / /::
                       ::          ,′
                       ::i  :;     :;  i::
                       ::|          |::
                       ::l         |::
                         ::j            ::
                        ::,′           l::
                         ::/           |::
                     ::/              !::
                       ::/    〉┴r      ::
                       ::,′    /:: ::|     |::

773:nobodyさん
13/09/03 08:13:13.43
ぬるぽ

774:nobodyさん
13/12/30 19:24:59.46
まあまあこんな感じだよ

775:nobodyさん
14/01/02 21:57:26.13
今年のラッキーカラーは?

776:nobodyさん
14/01/03 18:08:08.71
来てるかも

777:nobodyさん
14/01/27 20:19:46.52
周辺は厳戒態勢

778:nobodyさん
14/01/27 22:05:39.86
世界一

779:nobodyさん
14/01/29 21:03:23.07
どうもどうも


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch