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

---- SQLの前処理 ----


プログラムの中で実行したいSQL文はあらかじめ前もって準備しておくのが定石です。 前処理では、prepareというメソッドを使用して定義しておきます。重要なことは、ここでは命令を準備しておくだけで、実際にデータベースにアクセスするのは、この次の実行段階です。

次の例は、すでにオープンされたデータベース($dbh)に対して「テーブルmeiboからすべての内容を検索する」SQL文を準備しています。 ここでは、検索時にエラーが起こった場合はエラーメッセージを出力しプログラムを終了させています。

【記述例】
   $sth = $dbh->prepare("select * from meibo ")
    or die "Cannot prepare: " , $dbh->errstr();
【形式】
$sth = $dbh->prepare("SQL命令") or die エラーメッセージ;

SQL命令
select * from meibo
上記の命令を準備することになります。
エラーメッセージ
"Cannot prepare: " , $dbh::errstr;
ここでselect命令を間違えても、エラーは次の実行段階で次のように表示されます。
[egi@myouga]$ perl cgi40.pl
DBD::Pg::st execute failed: ERROR:  meib: Table does not exist.
Cannot execute: ERROR:  meib: Table does not exist.
[egi@myouga]$ 


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