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のリスト


戻る