データベースを利用するCGIプログラミング

---- プログラミングの基本手順 ----


perlプログラムでDBIを用いてSQLを操作する手順は、大変簡単です。 基本的には、次の5つのことを、次の順に記述することによって出来ます。

  1. DBIモジュールの使用を宣言する。(DBI)
  2. データベースをオープンする。(DBI/DBD)
  3. SQLの前準備を行なう。(DBI/DBD、SQL)
  4. SQLを実行する。(DBI/DBD)
  5. 結果の処理を行なう。(Perl)

次のプログラムは、「データベースegiのテーブルmeiboの内容をすべて表示する」というプログラムです。

#!/usr/bin/perl

use DBI;        <-----------------------------------------1. DBI使用宣言 

$username="egi";

$dbh = DBI->connect("dbi:Pg:dbname=egi",$username)     <------2. オープン
    or die "Cannot connect: " , $DBI::errstr;

$sth = $dbh->prepare("select * from meibo ")       <------3. SQL前準備
    or die "Cannot prepare: " , $dbh->errstr();

$sth->execute() or die "Cannot execute: " , $sth->errstr(); <-4. SQL実行

while ( @row = $sth->fetchrow_array() ){           <-------5. 処理      
    print "@row\n";
}

上記プログラムの5は、perlの命令です。残りの1、2、3、4は、DBI/DBDの命令です。さらに、3の「SQL前準備」の中に記述されている、

select * from meibo
は、SQL命令で「テーブルmeiboからすべての内容を検索せよ」を意味しています。
このようにperlで書かれたプログラムの中に、DBI/DBDの命令を用いてデータベースをアクセスするSQL命令が埋め込まれた形に記述されることになります。

このプログラムを実行させると、次のような結果になります。

[egi@myouga]$ perl cgi40.pl    <----perlプログラム cgi40.plを実行
ハル 2 宇部市 0836-88-8888   <-----
ミミ 2 宇部市 0836-33-3333         \
ポチ 10 山口市 0839-66-6666         出力結果
クー 4 宇部市 0836-99-9999         /
サチ 3 下関市 0832-77-7777   <-----
[egi@myouga]$ 

以後、上記の例を用いてそれぞれの命令を説明することにします。


江木鶴子 : egi@ube-c.ac.jp