人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

postgresでの質問です。

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

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:Perl PHP SSH Web クエリ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●27ポイント

phpPgAdmin のインストール

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

◎質問者からの返答

ありがとうございます。

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

早速試してみます。


2 ● KUROX
●27ポイント

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

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

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

思います。

◎質問者からの返答

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

ありがとうございます。


3 ● kn1967
●26ポイント

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

◎質問者からの返答

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

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

うまいこといきました。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ