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

386 名前:名無しさん@Emacs mailto:sage [03/04/20 12:54 ID:???]
>377
それから、カウントするために

SELECT * FROM hoge;

すると、すべてのカラムが返されてくるので非効率的(ネットワーク的にも)。
数を数えるなら、どこかひとつのカラムだけにするか、

SELECT COUNT(*) FROM hoge;

として、バックエンドに数えさせるべき。


387 名前:nobodyさん mailto:sage [03/04/20 15:04 ID:???]
>>386
レスサンクスです。とりあえずその方法に変更しておきました。
>>382
の方法ってのは、カウンタ用のテーブルを作成しておいて
他のテーブルが更新された時にそのカウンタを更新するよう
にトリガを仕込むってことですよね?更新頻度が多いと>>386
のほうが効率よいですか?

388 名前:nobodyさん mailto:sage [03/04/20 15:34 ID:???]
>>387
自己レスですけどUPDATEは頻繁に行われるがINSERTと
DELETEはあまりないので、トリガ仕込んでみようと
思います。

389 名前:nobodyさん [03/04/20 23:37 ID:xyBrUgxr]
Win2000proでPostgreSQLのインストール設定を誰か教えてください。

いまのところ、Cygwinをインストールし、Postgresql・cygipcを解凍した
とこまでしかできません。そのあとの設定がうまくいかず困っています。

usr/local/src/postgresql-7.3の
./configureコマンド入力後、

checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking which template to use... win
checking whether to build with 64-bit integer date/time support... no
checking whether to build with recode support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for default soft limit on number of connections... 32
checking for gcc... no
checking for cc... no
configure: error: no acceptable C compiler found in $PATH
と表示されます。ここからがわかりません。
どうか教えてください。



390 名前:_ mailto:sage [03/04/20 23:38 ID:???]
( ´∀`)/< 先生!!こんなのを見つけました。
web2001.kakiko.com/koma/hankaku/hankaku07.html
www.web2001.kakiko.com/koma/hankaku/hankaku08.html
web2001.kakiko.com/koma/hankaku/hankaku10.html
www.web2001.kakiko.com/koma/hankaku/hankaku09.html
web2001.kakiko.com/koma/hankaku/hankaku06.html
www.web2001.kakiko.com/koma/hankaku/hankaku05.html
web2001.kakiko.com/koma/hankaku/hankaku01.html
www.web2001.kakiko.com/koma/hankaku/hankaku02.html
web2001.kakiko.com/koma/hankaku/hankaku03.html
www.web2001.kakiko.com/koma/hankaku/hankaku04.html

391 名前:nobodyさん mailto:sage [03/04/20 23:48 ID:???]
configure: error: no acceptable C compiler found in $PATH
エラーの内容が分かんないようだと、Win nativeなヤツを使うほうがいいかと。

392 名前:nobodyさん mailto:sage [03/04/23 10:59 ID:???]
全件数をカウントする関数を作りたいんですけど、
今 employee1,employee2 というテーブルがあります。
次に counter というテーブルを作成して、そこに
employee1,employee2という列を定義し、ここに全件数
をカウントした数字を入力したいと思ってます。

CREATE FUNCTION count_table(text) RETURNS integer AS '
DECLARE
counters integer;
BEGIN
counters := SELECT COUNT(*) FROM $1;
UPDATE counter SET $1 = counters;
return counter;
END;
' LANGUAGE 'plpgsql';

というふうに関数を定義して、select count_table('employee1')
を実行すると
ERROR: parser: parse error at or near "SELECT" at character 9
と怒られます。どう修正したらよいでしょうか?

393 名前:ななし mailto:sage [03/04/23 19:12 ID:???]
>392
SELECT INTO

394 名前:nobodyさん mailto:sage [03/04/24 09:51 ID:???]
>>393
SELECT INTO counters COUNT(*) FROM $1;
でいけますた。ありがとう。



395 名前:nobodyさん mailto:sage [03/04/24 10:45 ID:???]
CREATE TABLE temp(
id text,
name text);

CREATE TABLE temp_counter(
temp integer);

CREATE FUNCTION temp_counter() RETURNS OPAQUE AS '
DECLARE
counters integer;
BEGIN
SELECT INTO counters COUNT(*) FROM TG_ARGV[0];
UPDATE temp_counter SET TG_ARGV[0] = counters;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER temp_trigger
AFTER INSERT OR DELETE
ON temp
FOR EACH ROW
EXECUTE PROCEDURE temp_counter('temp');

INSERT INTO temp VALUES ('hoge','moga');
とすると
WARNING: Error occurred while executing PL/pgSQL function temp_counter
WARNING: line 4 at select into variables
ERROR: parser: parse error at or near "$1" at character 24
というエラーが出てしまうんですが。。なんでですか?
質問ばっかですみません。


396 名前:しろ mailto:sage [03/04/24 17:40 ID:???]
テーブル名指定したいなら、引数じゃなくてTG_RELNAMEが使えると思うけど?
TG_RELNAMEはname型だけどね。

それと気になるのがtempというテーブル名。

何がやりたいのかよくわからないが、tempは一時テーブルの名前なんだけど
わかってますか?セッションが終わると自動的に削除されちゃうけどいいの?

マニュアル読んだほうがいいよ?ここ↓
www.postgresql.jp/document/pg721doc/index.html
functionはここ↓
www.postgresql.jp/document/pg721doc/programmer/plpgsql.html
結構判りやすいと思うんだけど・・・。


397 名前:しろ mailto:sage [03/04/24 17:41 ID:???]
396は395のレスです。スマソ

398 名前:nobodyさん mailto:sage [03/04/24 20:13 ID:???]
>>396
マニュアルは一通り目を通しました。あとtempというテーブル名
は例にあげただけで実際は違う名前です。まぎらわしくてすみま
せん。関数の部分を下記のように変更しました。

SELECT INTO counters COUNT(*) FROM TG_RELNAME;
UPDATE temp_counter SET TG_RELNAME = counters;

でもやはり insert するときに
WARNING: Error occurred while executing PL/pgSQL function temp_counter
WARNING: line 4 at select into variables
ERROR: parser: parse error at or near "$1" at character 24
というエラーが出てしまいます。そもそも"$1"なんて使ってない
んですが。。

399 名前:しろ mailto:sage [03/04/25 11:17 ID:???]
>398
> あとtempというテーブル名は例にあげただけで実際は違う名前です。
> まぎらわしくてすみません。

という事は、name,とかidとかいったフィールド名も使ってないわけですか?
ホントに紛らわしいです・・・。

> マニュアルは一通り目を通しました。
・・・
> そもそも"$1"なんて使ってないんですが。。

もう一度じっくり読んだほうがいいと思います。

$1については下記に書いてあります↓
www.postgresql.jp/document/pg721doc/programmer/plpgsql-declarations.html
要するにトリガで指定している引数の部分を指してると思います。

トリガファンクションについても、もう一度よく読んだほうが良いです。
RETURN とか EXECUTE とか。

もう一つ、これは別の方法ですが、SELECT INTO使わなくても、
カウント数はサブクエリを使えば一つのクエリで済むと思います。
 例:UPDATE テーブル名 SET 列名 = (SELECT COUNT(*) FROM テーブル名);

では頑張ってください。


400 名前:nobodyさん mailto:sage [03/04/25 22:48 ID:???]
>>399
レスどうもです。あと一歩というとこまでなんとかこぎつけました。
CREATE TRIGGER my_trigger
AFTER INSERT OR DELETE
ON my_table
FOR EACH ROW
EXECUTE PROCEDURE my_counter();

CREATE FUNCTION my_counter() RETURNS OPAQUE AS '
BEGIN
UPDATE my_counter_table SET my_table = (SELECT COUNT(*) FROM my_table);
RETURN NULL;
END;
' LANGUAGE 'plpgsql';

とすることで成功しました。
で、本当にやりたいことなんですが

401 名前:nobodyさん mailto:sage [03/04/25 22:56 ID:???]
my_counter_tableというテーブルで複数のテーブルの全件数を
管理したいのです。たとえば'hoge','moga','2ch'というテーブル
の全件数を管理したい場合、my_counter_tableに'hoge','moga','2ch'
という列を定義して、そこに全件数を記録する感じです。
そのあと各テーブルにトリガを作成して同じ関数を呼び出します。
そのときに関数を
UPDATE my_counter_table SET TG_RELNAME = (SELECT COUNT(*) FROM TG_RELNAME);
のようにすれば1つの関数を定義するだけで済むかなと思った
んです。でも上記のようにするとINSERTを実行する時に
ERROR: parser: parse error at or near "$1" at character 26
というエラーが出てしまうのです。トリガを
EXECUTE PROCEDURE my_counter('hoge');
のように定義して、関数を
UPDATE my_counter_table SET TG_ARGV[0] = (SELECT COUNT(*) FROM TG_ARGV[0]);
としても同じエラーが出ます。こういうふうには使えないの?

402 名前:nobodyさん mailto:sage [03/04/26 00:58 ID:???]
動的問い合わせには EXECUTE を使え。
いま環境ないからてきとうだけど、

EXECUTE ''UPDATE my_counter_table SET ''
|| quote_ident(TG_RELNAME)
|| ''=(SELECT COUNT(*) FROM ''
|| quote_ident(TG_RELNAME)

でどうよ。

ttp://www.postgresql.jp/document/pg721doc/programmer/plpgsql-statements.html
23.5.4. 動的問い合わせの実行

も見れ。

403 名前:nobodyさん mailto:sage [03/04/26 12:05 ID:???]
>>402
CREATE FUNCTION temp_counter() RETURNS OPAQUE AS '
BEGIN
EXECUTE ''UPDATE my_counter_table SET ''
|| quote_ident(TG_RELNAME)
|| ''=(SELECT COUNT(*) FROM ''
|| quote_ident(TG_RELNAME)''
|| '';
RETURN NULL;
END;
' LANGUAGE 'plpgsql';
こうしてみたんですが
parser: parse error at or near "'
|| '" at character 110
というエラーが出ます。
シングルクォーテーションは '' で表す。
テーブル名や列名は quote_ident 関数に通さないといけない。
ということなので上記の文は
UPDATE my_counter_table SET 'hoge' = (SELECT COUNT(*) FROM 'hoge'
という文字列を実行するってことですよね?
||の意味がよく分からないので、そこに問題がある
気がします。ドキュメントを読んでもダメでした。
||はどういう意味なんですか?

404 名前:nobodyさん mailto:sage [03/04/26 18:37 ID:???]
>>395
「業者2人」がたいへんそうですね



405 名前:402 mailto:sage [03/04/27 21:51 ID:???]
>>403
最後のほうが微妙にちがうかも?

CREATE FUNCTION temp_counter() RETURNS OPAQUE AS '
BEGIN
EXECUTE ''UPDATE my_counter_table SET ''
|| quote_ident(TG_RELNAME)
|| ''=(SELECT COUNT(*) FROM ''
|| quote_ident(TG_RELNAME)
|| '')'';
RETURN NULL;
END;
' LANGUAGE 'plpgsql';

|| は文字列の結合です。

406 名前:nobodyさん mailto:sage [03/04/27 23:08 ID:???]
>>405
上手くいきますた!
長年の夢が叶った感じです。どうもありがとう。

407 名前:nobodyさん mailto:sage [03/04/29 11:51 ID:???]
ttp://itb-tech.itboost.co.jp/php/php_12.php
PostgreSQLでセッション変数管理したいな
と思ってたんですけど、ここ見たらmysql
の方がいいかなと思ってしまいました。
みなさんはどうしてます?

408 名前:nobodyさん mailto:sage [03/04/29 13:04 ID:???]
>>407
対象pgsqlのバージョンが古そうだな。今は稼動しながらvacuumできる。
ま、セッション管理のためだけなら、軽いと言われるMysqlの方がいいかもね。


409 名前:nobodyさん mailto:sage [03/04/29 16:42 ID:???]
>>408
今はPostgreSQLだけ導入しててセッション管理は/tmpでしてます。
セッション管理のためだけにmysql導入するの躊躇してましたが
稼働しながらvacuum出来るならちょっと試してみます。レスどうも
です。

410 名前:nobodyさん [03/05/07 16:15 ID:o2l25maR]
文字コードに関連して教えて下さい。
レンタルサーバー上で動くPHP+PostgreSQLのプログラムを書く際、
Windows上のEditorは何が便利でしょうか?
その文字コードは、EUCで書いておけば問題無いでしょうか。
秀丸やWZだとソースの読み込み時に一々EUCを選択しないと
いけないのですが、使い方がおかしいでしょうか。

あと、参考書を見ると
mbstring.http_input
mbstring.http_output
の設定等が書いて有りますが、レンタルサーバーを使う場合は
特に気にせずEUCで書いておけば、httpでのやりとりやブラウザ表示
は特に問題は起きないと思えば良いですか?

取りあえず簡単にレンタルサーバーからPHP+Postgreで文字を
書き出して、IEで見たところ正しく表示されてるようでした。


411 名前:しろ mailto:sage [03/05/07 16:30 ID:???]
>410
秀丸とPeggy Proつかってまつ。

> 秀丸やWZだとソースの読み込み時に一々EUCを選択しないと
> いけないのですが、使い方がおかしいでしょうか。

自分もこれ面倒だったんで、以下のようにしました。

PHPファイルの関連付けの設定で
OPENの「アクションを実行するアプリケーション」の箇所に
/fe
を入れてやると、PHPファイルだったらEUCで開くようになります。
 ex.C:\Hidemaru\Hidemaru.exe /fe %1

他にももっとマシなやりかたあるかもしれないけど。

412 名前:nobodyさん mailto:sage [03/05/07 17:04 ID:???]
「その他」「動作環境」「編集」「文字コードの自動認識をする」「詳細」

413 名前:410 [03/05/07 19:15 ID:o2l25maR]
>>411,>>412さん、ありがとうございます。
なるほど、出来ました。
それから、Peggy Proってのを探して使ってみました。
これいいですね。411さんはどっちを使ってますか?

414 名前:nobodyさん [03/05/07 19:34 ID:n2ggMpEP]
どうすりゃいいの?
      /        /       |    ヽ           \
 ∧ ∧/         /      |     ヽ          ∧\∧
( / ⌒ヽ        /         |       ヽ         ( / ⌒ヽ
 | |   |         /         |      ヽ           | |   |
 ∪ / ノ         /        |        ヽ         ∪ / ノ
  | ||   ミ    /            |           ヽ       / / /
  ヽ_)_)     ∧/∧         |        ∧ヽ∧  彡  しl_ノ
        ( / ⌒ヽ        |        ( / ⌒ヽ
         | |   |  ミ   ∧ |∧  彡    | |   |
         ∪ / ノ     ( / ⌒ヽ        ∪ / ノ
          | ||        | |   |         / / /
          ヽ_)_)      ∪ / ノ        しl_ノ
                   | ||
                   ∪∪
日本ロジテム(一部上場、みずほの融資先)の
子会社せいも素(みずほの融資先)でサービス残業の過労による自殺者が出た。
www.samos.co.jp
society.2ch.net/test/read.cgi/traf/1046749189/l50
tmp.2ch.net/test/read.cgi/company/1046775680/l50



415 名前:しろ mailto:sage [03/05/07 19:44 ID:???]
>413
「どっち」とは??
使っているのは「秀丸とPeggy Pro」です。

秀丸と、Peggy Proは適当に使い分けしてて、大体両方起動してます。
Peggy Proか、Peggyかきいてるなら、使ってるのはPeggy Proです。

Peggy Proはシェアだけど、他の色んな言語に対応してるし、
高機能なので結構重宝してまつ。

416 名前:nobodyさん [03/05/07 19:48 ID:JylB+nG2]
●貴方に代って恨み晴らします● 【復讐・特殊業務】
--------●○●別れさせ屋●復讐代行業務●○●----------
●騙された・裏切られた・弄ばれた・逃げられた・捨てられた・
相手に誠意が無い・異性問題・家庭内暴力・不倫疑惑解明・人間関係・金銭トラブル★ www.blacklist.jp/i
別離工作・情報収集・トラブル対策・ボディガ―ド・等々!
●真剣にお悩みの方、安心してご相談下さい。解決へ導きます★
□■各種データ・電話番号調査・住民票・戸籍謄本など調査■□
   www.blacklist.jp/i
【注意】ジャンプしない場合はURLをコピーしてファイルから開いて下さい●○● www.blacklist.jp/
--------------------------
◆リンク◆復讐現場密着24時◆ www.123456789.jp/


417 名前:413 mailto:sage [03/05/07 23:41 ID:???]
>>415しろさん、遅レスすみません。
Peggy Proが便利そうなんで、PHPソース書きなら秀丸の出番が
無いかなと思ったもので、、、、聞いてみました。

418 名前:nobody [03/05/08 04:11 ID:NOzEFrdh]
PostgreSQLを使ってみようかと思っています。Webで少しだけかじってみたの
ですが、Apache+PHPと一緒に利用する際は、Apacheのインストール>Postgre
のインストール>PHPのインストール(configureするときにPostgreを明示)
としますよね。

ApacheがSuexec付きのnobodyで動いています。(--suexec-docroot=/home 付
きでconfigure)
/home/hoge以下をhoge.comで運用する、といった場合Postgreを走らせるユー
ザーをhogeとして
# chown -R hoge /usr/local/pgsql/
して
# /usr/local/pgsql/bin/createuser --createdb --no-adduser nobody
とすればいいのでしょうか?それともPostgreを走らせるユーザーはpostgre等として別に作るべきでしょうか。
apacheのユーザーとPostgreのユーザーの関係がどうもわからないのです。

また、この辺りの基礎が分かってApacheのことも書いてあるお勧めの本がありましたら是非教えて下さい。

419 名前:動画直リン [03/05/08 05:10 ID:R/vnapw0]
homepage.mac.com/hitomi18/

420 名前:しろ mailto:sage [03/05/08 10:24 ID:???]
>417
Peggy Pro一本でも全然問題ないと思いますよ。好みの問題ですね。
自分は単に秀丸にマクロ入れてるのがあるので
それ使う時だけ秀丸使ったりとかです。

>418
PostgreSQLの管理用のユーザは別に必要。

Windows用だけど
 「はじめてのPostgreSQLプログラミング」
判りやすかったです。それとか、
 「PHP×PostgreSQLで作る最強Webシステム」
こちらの方が少しレベルが上かも知れませんが
とても参考になりました。

あとは「PHP4徹底攻略」あたりかな。
赤マンモスの方はPDFにもなってる↓
www.net-newbie.com/support/


421 名前:418 [03/05/09 18:21 ID:STzTzCJD]
>>420
早速本屋に逝ってきました。参考になりますね。
また分からないことがあればお世話になるかもしれません。
その時はよろしくです。ありがとうございました。

422 名前:nobodyさん [03/05/11 01:35 ID:6HQj9LIx]
従業員の名前、住所、メールアドレス、電話番号をDBで
管理していて、普段はメールアドレスの検索が主な操作
な状況です。こんな場合、メールアドレスだけ別テーブル
に保存して検索するのと SELECT mail FROM hoge みたい
に検索するのってどっちが効率いいんですか?

423 名前:nobodyさん mailto:sage [03/05/11 01:36 ID:???]
えーと、indexを貼るのもよろしいかと。

424 名前:nobodyさん mailto:sage [03/05/11 02:21 ID:???]
>>423
CREATE INDEX ってやつですか?



425 名前:nobodyさん mailto:age [03/05/11 02:27 ID:???]
従業員の管理ったってそんなに大人数でもないだろうに

ポスグレでも20万件程度までならサクサク動くから

426 名前:nobodyさん mailto:sage [03/05/11 03:59 ID:???]
小規模なとこで働いてる限りあんまり
チューニングってのは考えなくていい
んですかね。やっぱり。

427 名前:nobodyさん mailto:sage [03/05/11 04:14 ID:???]
>426
Accessでどうのこうのといったレベルなら。
小規模でもオンラインゲームのマップ情報とかDBに載せてたりすると
チューニングが肝です。

428 名前:nobodyさん mailto:saga [03/05/12 06:11 ID:???]
postgresもObjectBrowser
みたいなもんがないのかねー

429 名前:nobodyさん mailto:sage [03/05/12 11:45 ID:???]
これじゃダメ?

www.hi-ho.ne.jp/tsumiki/

430 名前:nobodyさん mailto:sage [03/05/12 15:41 ID:???]
7.2.3でDBのエンコーディングをEUC_JPにしてスキーマをつくって、
JDBCからアクセスするアプリをつくってみたんですが、〜とかマルイチなどの
文字が化けてしまうんですよね。。どうにかなりませんか?
ポスグレはShift_JISエンコーディングはサポートしていない??


431 名前:428 mailto:saga [03/05/13 14:33 ID:???]
>>429さん
ありがとうございました。
なんなものがあったなんて知らなかったよ




432 名前:nobodyさん [03/05/15 11:09 ID:LGr+4aCV]
>>429
ここのページのDB利用実態調査が面白い。
特に、MyとPostへのLOVE度、ワラタ。

433 名前:bloom [03/05/15 11:10 ID:fs87NLJj]
homepage.mac.com/ayaya16/

434 名前:nobodyさん [03/05/16 03:28 ID:3cK7BkGM]
$sql = "SELECT passwd FROM customer_auth WHERE login = '".$login."'";
このSQL文を実行すると条件に1つもマッチしない場合エラーになりますよね。
@$rec = pg_query($conn,$sql);
if (!$rec){
exit("そのようなユーザーは存在しません。もう一度確認して下さい。");
}
としても $recがTRUEになってるみたいで上手くエラー処理をしてくれません。
何かよい方法ないでしょうか。



435 名前:nobodyさん mailto:sage [03/05/16 03:36 ID:???]
>>434
エラーにはならんだろう。
if(!pg_num_rows($rec)){...
でどうよ。

436 名前:nobodyさん mailto:sage [03/05/16 10:24 ID:???]
あ、なるほど。データがなくても別にエラーにはならない
訳ですね。それで上手くいきました。ありがとう。

437 名前:田中 [03/05/16 12:32 ID:shMd76bE]
先ずはココを見てください!
本当に、すごいです。
www.c-gmf.com/h16002.htm

438 名前:山崎渉 mailto:(^^) [03/05/22 02:02 ID:???]
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

439 名前:山崎渉 mailto:(^^) [03/05/28 17:19 ID:???]
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

440 名前:nobodyさん [03/06/03 17:33 ID:AuMlkjoB]
・・・
$deldata = "IN (" . implode($_POST['del'],",") .")";
PHPlibを使ってPostgreSQLのデータを削除するものを作っています。
以下のような感じに書いて削除はできるのですが
-------------
・・・
$deldata = "IN (" . implode($_POST['del'],",") .")";
$del_query = "DELETE FROM vf_employee WHERE emp_id ".$deldata;

# データ削除
@$del_data_set = $db->query($del_query);
print(pg_affected_rows($del_data_set)); //-->ここ
・・・
-------------
削除した件数1件あっても、 pg_affected_rowsが0になってしまいます。
ちょうど、>435と同じように、件数のチェックをして
エラーチェックをしたいのですが、削除の場合の件数は
取得できないのでしょうか?

何か間違ってるでしょうか。。

441 名前:440 mailto:sage [03/06/03 17:34 ID:???]
>440 の2行目まではコピペのミスです、スミマセン;

442 名前:  mailto: [03/06/16 11:17 ID:???]
最近の PostgreSQL って pg_atoi() のチェック厳しくなりましたよね。
おかげで

$SQL = "UPDATE table SET seq = '$seq'";

で $seq が空の場合にエラーになるようになってしまいました。

というか他所の会社が作ったシステムのメンテを引き受けたのですが、
恐らく register_globals = on の状態を想定していて、
$seq があってもなくても通るようにと考えたんではないかと思います。

↑のようなパターンが随所にあって、
手動での修正はかなり厳しいものがあります。
何かいい方法はないでしょうか?

443 名前:nobodyさん [03/06/19 00:43 ID:???]
MySQLとPostgreSQLの違いって何ですか〜
初心者で御免


444 名前:nobodyさん [03/06/24 11:30 ID:s+ewonQw]
レンタルサーバーでPHP+Postgre使ってます。(WebProg経験浅いです)

データベースのテーブルデータをフォルダに移したいのですが
select * from テーブル名 into outfile '/usr/home/xxxx/ファイル名'
と言うsql文は普通に使えるはずでしょうか?
どうしてもparse error at or near "into"が出ます。
単純なミスでしょうか。よろしくお願いします。



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

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

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






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

前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