CGIによる、MySQLのデータの更新処理が出来きず困ってます。
最近、perlの勉強をはじめ、
勉強がてら、
ユーザ管理フォームを作りたく
CGIのソースを書いています。
データはMySQLに登録しています。
以下のプログラムを使用し、
データの更新をしたい際に、
更新作業を行うと、
エラーなどは出ず、
ソースにあるように、
「データを正常に更新しました」と表示されますが、
更新されたか?をMySQLで確認すると、
データが更新されておらず、
更新作業を行う前と何ら変わらない値が登録されています。
「update文」のあたりがおかしいのかな?と
感じたのですが、
どこが検討はずれなのか?が分からず、
前に進めないでいます。
アドバイスいただけると大変ありがたいです。
宜しくお願い致します。
ソースは以下の通りです。
=========================================
use CGI;
use DBI;
$form = CGI->new;
print "Content-type: text/html\n\n";
print "<html><body>\n";
# DBに接続
$db=DBI->connect("DBI:mysql:dbname","username","pwd",
{RaiseError => 0, PrintError => 1});
if(!$db){
print "失敗\n";
exit;
}
# UPDATE文作成
$sql = "update test20090702 set agent='$agent',attend='$attend',name='$name',sex='$sex',remarks='$remarks' where name='$name'";
# SQL実行
$sth = $db->prepare($sql);
if(!$sth->execute){
print "SQL-fail\n";
exit;
}
# ステートクリア
$sth->finish;
# DB切断
$db->disconnect;
print "データを正常に更新しました。\n";
print <<"HTML";
HTML
=========================================
■開発環境:Fedora9
■MySQL:mysql-5.0.77-1