• 締切済み

postgreSQLをPHPから操作する

 PHPを使い、ウェブページ上からデータベース(postgreSQL)にコマンドを入力・結果を反映させたいのですが、方法が分かりません・・・・・・。 1,ユーザー名、パスワード、データベース名、コマンドをそれぞれテキストエリアに入力して送信 2,画面の下半分(フレームではなく水平線の下)に、コマンドの実行結果を表示 (例:select * from test_table; と入れると、test_tableの内容がページ上に表示される)  複数の人が利用するのでこんな感じに作りたいのですが、どうすればいいのでしょうか? 参考意見だけでも構いませんのでご教授ください。よろしくお願いいたします。

  • rusya
  • お礼率56% (167/295)
  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.2

phpPgAdminで同様のことができます。 作るより使い方覚えたほうが早いし安全ですね。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 のっけから失礼だが、もう少しPHPそのものの基礎を学んでみてはどうだろうか。あるいはMicrosoftのAccessでDBの基礎を先にやるとか。内容を読む限り、PHP自体もpostgres自体もあまり自信が無いような印象を受ける。いきなり最初からPHPとDBを同時進行で勉強するのは無理があるでしょう。  少なくとも、関数の探し方くらいは覚えていただきたい。PHP本家のサイトまたはミラーサイトで、最低限以下の関数を検索すべし。  pg_connect(), pg_query(), pg_fetch_array(), pg_close();  お勧めミラーサイトはjp.php.net。ここを開き、画面上部に search for [    ] in the [function list ▼] というのがあるので上の関数を打つべし打つべし。関数を自力で探せるようになれば大抵の事はできる。  できれば、まずhttp://jp.php.net/manual/ja/の内容は一通り読んでください。こんなの全部読んでられねーよという場合は、VI.関数リファレンスを(中身は読まなくて良いので)ざっと眺めてみる事。あ~こんな関数が用意されとんや程度でOK。ライブラリを制する者が言語を制す、ですぞ。  何をどこまでやったけどこんなエラーが出る、とか、こんな風に作ったけどSQL Injection(またはHTML Injection)の対策はどうすれば、とか、もう少し具体的な質問をすると良い回答が得られるでしょう。

関連するQ&A

  • htmlの別フレームにphpでの処理結果を表示

    htmlでフレームを上下に分割し、上のフレームに用意したセレクトボックスで選択された値に応じて phpとmysqlを用いてデータベースから該当するものを抽出し、 その結果を下のフレームに表示させる方法が分からなくて困ってます。 例えば、上フレームのセレクトボックスで選択した名前と同じ名前の建物をデータベースから 探し出して下フレームに検索結果(住所、電話番号など)を表示させるというような処理です。 テキストフォームに入力された文字列を別フレームに"target"を使って 表示させる方法は見つけましたが、それでは検索結果を表示させられないような気がして。。 参考になるサイトなどありますでしょうか? どなたかおわかりの方がいらっしゃいましたら、教えてもらえると非常に助かります。

    • ベストアンサー
    • PHP
  • DELETEの操作で (PostgreSQL)

    linux postgresql 8.4 で1行DELETEしたいのですが select * from table_a where a_key = 1400; で1件検索できても delete from table_a where a_key = 1400 returning *; としてもレコードが表示されません。 原因の調べ方を教えてもらえないでしょうか? よろしくお願いします。

  • php,postgreSQLについて

    こんにちわ。初めて投稿します。よろしくお願いします。 現在、postgreSQLで作ったテーブルのデータをつくり、検索フォームで指定した条件(この場合はお店のコード) を、指定先のページに表示させたいのです。 SQLに直接、表示させたいコード番号を入力すれば出るのですが、フォームに入力された値を変数として格納し、SQL文の中に自動にあてはめる方法がわかりません・・。 どうかよろしくお願いします。 phpは4.1です。inp_store_cdは検索フォ-ムでのinput名です。 *表示画面 <?php $conn = pg_connect ("host=localhost port= 5432 dbname=test ); if ($conn == false) { print("データベースに接続できませんでした。"); exit; } $sql = "select * from store_basic where store_cd=$_POST["inp_store_cd"]"; if (!empty($inp_store_cd)) { $sql = $sql. "and sotre_cd =" .$_POST["inp_store_cd"]; } $result = pg_exec($sql); // selectを実行 if ($result == false) { printf("SQL:\"$sql\"の実行に失敗しました。"); exit; } $rows = pg_numrows($result); // 行数を取得 $columns = pg_numfields($result); // 列数を取得 print("<table border>\n"); for ($j = 0;$j < $rows;$j++) { if ($j == 0) { print("<tr>"); for ($i = 0;$i < $columns;$i++) { $str = pg_fieldname($result,$i); // 列名の取り出し print("<th>$str</th>"); } print("</tr>\n"); } print("<tr>"); for ($i = 0;$i < $columns;$i++) { $str = pg_result($result,$j,$i); // データの取り出し print("<td>$str</td>"); } print("</tr>\n"); } pg_freeresult($result); // 検索結果の解放 print("</table>\n"); ?>

    • 締切済み
    • PHP
  • WindowsNT上でPostgreSQLを動かす

    こんにちわ。 WindowsNT上でApacheを使ってPHPとPostgreSQLを動かそうとしています。PostgreSQLはCygwinを使って動いてます。 やりたいことはPostgreSQLでデータベースを作成し、それをPHPを使ってデータベースの検索ページを構築したいのですが、その他のPHPページちゃんとブラウザー上で見れるのですが、PostgreSQLを含んだページは何も表示されないのです。PHPかApacheで設定するところがあるのでしょうか??それともPostgreSQLのどこかで?? どなたかWindowsでPostgreSQLを使っている方ご教授願います!!

  • PHPとPostgreSQL接続 (スキーマ)

    いつもお世話になっております。 現在、PHP(5.3.1)とPostgreSQL(9.2)で開発をしております。 エラーが発生しており大変困っております。 こちらが発生するエラーです。 Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: schema スキーマが見つからないとのことです。 そして、以下がコードとなります。 <?php // PostgreSQL Connect if (!($cn = pg_connect("host=*** port=*** user=*** password=*** dbname=***"))) { die; } // PostgreSQL Select $sql = "select * from t_test.na1"; if (!($rs = pg_exec($sql))) { die; } // PostgreSQL Get Records $ct = pg_numrows($rs); for ($i = 0; $i < $ct; $i++) { $item = pg_fetch_array($rs, $i); $txt = "${item[1]}"; } // PostgreSQL Disconnect pg_close($cn); ?> 現在のデータベースのスキーマについてですが「na1」と「public」の2つが存在しています。 試しに、na1とpublicのテーブルをまったく同じにして SQLの部分を「select * from t_test」に変更すると「public」側のテーブルが覗けます。 しかし、SQLの部分を「select * from t_test.na1」に変更すると「スキーマが見つかりません」 というエラーが発生してしまいます。 スキーマがあるにもかかわらずこのエラーがでてしまうため原因が分からず困っております。 もしお分かりになる方いらっしゃいましたら、教えていただければと思います。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPからPostgreSQLにアクセスするには?

    PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。 ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか? エラーメッセージは下記の通りです。 Fatal error: Call to undefined function: pg_connect() in C:\Apache2……

  • postgreSQLでテーブルの一覧

    他人が管理していたUNIXマシンのデータベースがあります。 postgreSQLです。 さて、SQLコマンドで、SELECTとかINSERTとかはわかった(というか 教わった)のですが・・・・ テーブルが複数あるようなので、そのテーブルの一覧というか、 すべてのテーブルの名称を見るにはどうしたらよいのでしょうか?

  • PHPからPostgreSQLへの書き込み

    現在アンケートサイトを作成しているのですが、単純にラジオボタンからPostgreSQLにデータを書き込みたいのですが表示されません。 アンケートサイトからラジオボタンで選択し、データの書き込みはできているようです。 しかし、TeraTermからPostgreSQLに接続しデータ表示してみるとなにかしらデータは入っているみたいなんですが、データの内容が表示されません どなたか詳しい方ご指摘お願いします。 ※アンケートサイト <html> <head> <title>テスト</title> </head> <body> <form method="post" action="sample.php"> <input type="radio" name="sam" value="山">山<br> <input type="radio" name="sam" value="川">川<br> <input type="radio" name="sam"value="谷">谷<br><br> <input type="submit" name="OK" value="OK"> </form> </body> </html> ※php処理 <html> <head> <title>結果</title> </head> <body> <?php $dbconn = pg_connect ("dbname=***** user=*****"); $result = pg_query ($dbconn, urldecode("insert into sample values('$sam');")); pg_close($dbconn); ?><br> </body> </html> ※TeraTermからデータ入力の確認 *****=> create table sample( *****(> sumi text); CREATE TABLE *****=> select * from sample; sumi ------ (0 rows) *****=> grant select on sample to ******; GRANT <アンケートサイトで選択> *****=> select * from sample; sumi ------ (1 row) <アンケートサイトで選択> *****=> select * from sample; sumi ------ (2 rows) <アンケートサイトで選択> *****=> select * from sample; sumi ------ (3 rows)

    • ベストアンサー
    • PHP
  • PostgreSqlシステムカタログを組み合わせて

    PostgreSqlシステムカタログを組み合わせて データベース名 スキーマ名 テーブル名 ----------- -------- -------- dtabase1 public table101 dtabase1 schema1 table111 dtabase1 schema1 table112 dtabase2 public table211 dtabase3 schema1 table311 dtabase3 schema2 table321 というようなデータを取ることは出来ますか?

  • PostgreSQLについて

    PostgreSQLが既に起動しているにも関わらず、 操作ミスで『psql.exe』をダブルクリックしてしまい、 コマンドプロンプトが立ち上がりパスワードを求められたので「postgres」を入力しましたら、 コマンドプロンプトが閉じました。 動作確認を行った結果、使用しているアプリケーションの動作は問題なさそうだったのですが、 何か問題とか起こってないでしょうか。 PostgreSQLがまったく初心者の為、大変申し訳ありませんがご回答よろしくお願い致します。

専門家に質問してみよう