PostgreSQLとPHPのテスト

以下の内容を試すには、PostgreSQLとPHP対応のapacheがインストールされている 必要があります。

準備

まず、データベースを作ります。そこに使うテーブルを作ります。これには、以下のコマンドを用います。これには、suで、Postgresの管理者になって、以下のコマンドを実行します。

% /usr/local/pgsql/bin/cratedb fujiki
% /usr/local/pgsql/bin/psql fujiki
fujiki=> create table price_table (name text,price int);
fujiki=> grant all on price_table to nobody;
fujiki=> \q
%

DBへの登録

まずデータベースへの登録を行うPHPスクリプトを含むページを作ります。

phpreg.phtml
<script language="php">
$HostName = "hibiki.kitakyu-techno-ctr.co.jp";
$DataBaseName = "fujiki";
</script>
<head><title>PHPによるDBへの登録</title></head><body>
<script language="php">
$pg = pg_connect($HostName,"","","",$DataBaseName);
$command = "insert into price_table values ('$name', $price);";
$result = pg_exec ($pg, $command);
pg_close($pg);
printf("%s : %dを登録しました",$name,$price);
</script>
</body>
</html>

そして、この登録を行うスクリプトを含むページを呼び出す以下のようなページを作ります。

<form action="phpreg.phtml" method="post">
<ul>
<li>品名<input size="16" type="text" name="name">
<li>値段<input size="16" type="text" name="price">
<li><INPUT type="submit" value="登録">
</ul>
</form>

これを実行するとこのようになります

ここで「登録」ボタンを押して得られたページのソースを見ても、PHPのスクリプトはありません。このページの内容は、サーバがPHPスクリプトを実行た結果をだからです。


DBの検索

phpsear.phtml
<script language="php">
$HostName = "hibiki.kitakyu-techno-ctr.co.jp";
$DataBaseName = "fujiki";
</script>

<head><title>PHPによるサーチ結果</title></head>
<body>
<script language="php">
$pg = pg_connect($HostName,"","","",$DataBaseName);
$command = "select * from price_table where name = '$name';";
$result = pg_exec ($pg, $command);
pg_close($pg);
$n = pg_numrows($result); if ($n == 0) { //***** データが見つからなかったとき printf("データがありません"); } else { $price = pg_result($result, 0, "price"); printf("%s は %d 円です",$name,$price); } </script> </body> </html>

これを以下のように呼び出して使います

<form action="phpsear.phtml" method="post">品名<input size="16" type="text" name="name">
<INPUT type="submit" value="検索"></form>

以下でこのテストができます

品名

DBのリスト

phplist.phtml
<script language="php">
$HostName = "hibiki.kitakyu-techno-ctr.co.jp";
$DataBaseName = "fujiki";
</script>

<head><title>PHPによるサーチのリスト</title></head>
<body>
<h2>登録されている値段のリスト</h2>
<script language="php">
$pg = pg_connect($HostName,"","","",$DataBaseName);
$command = "select * from price_table;";
$result = pg_exec ($pg, $command);
pg_close($pg);
$n = pg_numrows($result);
if ($n == 0) {
      printf("データがありません");
} else {
      printf("<table border><tr><th>商品</th><th>値段</th></tr>");
      for ($i=0;$i<$n;$i++){
            $name = pg_result($result, $i, "name");
            $price = pg_result($result, $i, "price");
            printf("<tr><td>$name</td><td>$price</td></tr>\n");
      }
      print "</table>\n";
}
</script>
</body>
</html>      

これを呼び出すと以下のようになります

DBのリスト


戻る