postgresでの質問です。


ローカルサーバーにてPostgresを入れて使っています。
今まではSSHで入ってクエリーを
INSERT INTO ~~
といった感じで追加しておりました。
これをWebの画面上から行いたいと思っております。
PHPとPerlが少々出来る程度のスキルしかないですが
この作業をWEB上から行うに当たって何か
簡単なサンプルスクリプトみたいなものを紹介していただけないでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/09/04 07:57:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント27pt

phpPgAdmin のインストール

サンプルと言うかそのものズバリなアプリケーションがあるので、これを参考にするかそのまま使ってしまえばよいと思います。

id:quocard

ありがとうございます。

こんな便利なモノがあるんですね。

早速試してみます。

2007/09/04 07:55:47
id:KUROX No.2

回答回数3542ベストアンサー獲得回数140

ポイント27pt

http://www.phpbook.jp/database/postgresql/index7.html

URLの真ん中のpgtest5.php以下あたりが参考になるかと。

INSERT、SELECTの例が入っていて、簡単なサンプルだと

思います。

id:quocard

こちらも非常に参考になります。

ありがとうございます。

2007/09/04 07:56:05
id:kn1967 No.3

回答回数2915ベストアンサー獲得回数301

ポイント26pt

phpならば名前が pg_ から始まる専用関数が用意されていますので非常に楽です。

基本的手順は

(1)PostgreSQLへの接続

pg_connect — PostgreSQL 接続をオープンする

pg_pconnect — 持続的な PostgreSQL 接続をオープンする

最初のうちはpg_connectを使う場面が多いでしょう。

(2)クエリの発行

pg_query — クエリを実行する

pg_select — レコードを選択する

pg_delete — レコードを削除する

pg_update — テーブルを更新する

pg_insert — テーブルに配列を挿入する

pg_send_query — 非同期クエリを送信する

select、delete、insert、updateを使わずに全てpg_queryにてSQLを発行しても構いません。

pg_insertはphp内の配列に入っている情報を直接投げられるので便利ですがマニュアルにも実験的と書かれていますので積極的な利用は控えておいたほうが無難です。

非同期クエリは複数の作業を平行処理したい場合に使います。

(3)結果セットの受け取り

pg_num_fields — フィールド数を返す

pg_num_rows — 行数を返す

pg_fetch_all_columns — 指定したカラムの全ての行を配列として取得する

pg_fetch_all — 取得されたすべての行を配列として取得する

pg_fetch_array — 行を配列として取得する

pg_fetch_assoc — 行を連想配列として取得する

pg_fetch_result — 結果リソースから値を返す

pg_fetch_row — 数値添字の配列として行を得る

pg_get_result — 非同期クエリの結果を取得する

フィールド数と行数を数えて、その分だけループ処理するといった使い方が基本的な流れ。

(4)メモリを開放し、データベース接続を閉じる

pg_free_result — メモリを開放する

pg_close — PostgreSQL 接続をクローズする

メモリはスクリプト終了時に自動的に開放されるので通常はpg_closeだけを使用する。


その他にも幾つかの関数がありますのでphpマニュアルを参照してみてください。

(それぞれの関数毎にコードのサンプルがあり、それぞれを見比べていけば上記のような流れになっている事を確認できるはずです)

PHP: PostgreSQL 関数 - Manual

id:quocard

こんなに長々と書いていただきありがとうございます。

非常にわかりやすくこちらのものを元に試したら

うまいこといきました。

ありがとうございます。

2007/09/04 07:56:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません