初心者だけどPerlが大好き

コードが世界を変える!

データベースに追加ボタンで年齢を追加してね  

ということで作った trinity888 のテーブルに
追加ボタンで 年齢を追加していってくださいね

mente2.cgi

#!D:/xampp/perl/bin/perl
use utf8;
use CGI;
use DBI;
$q = new CGI;
print $q->header(-type =>'text/html',-charset =>'utf-8'),
$q->start_html(-title=>"Database Form"),
$q->h1(' データを更新・削除します'),
$q->h2("データベースの内容");
$dbname = "trinity777";
$user = "root";
$passwd = "あなたのパスワード";
$tbname = "trinity888";
$host = "localhost";
# DBに接続
$dbh=DBI->connect("DBI:mysql:$dbname; host=$host", $user, $passwd)
or die $DBI::errstr;
$dbh->do("SET NAMES utf8");
# 該当する全データ出力するSQL実行
$sth = $dbh->prepare(" SELECT * FROM  $tbname WHERE name LIKE '%$myname%' order by id ");
if(!$sth->execute){print "SQL失敗\n";exit;}
print $q->start_table({-border=>1}),
$q->start_Tr,
$q->th(['id', 'mtime','name','email','subject', 'comments','uploaded_file','age']);
while (@rec = $sth->fetchrow_array())
{
print $q->start_Tr,
$q->td([$rec[0],$rec[1],$rec[2],$rec[3],$rec[4],$rec[5],$rec[6],$rec[7]]);
print $q->start_form(-action=>'update2.cgi',-method=>post),
$q->hidden(-name =>'id', -value =>$rec[0]),
$q->td,
$q->submit(-name =>'Action', -value =>'更新'),
$q->end_td,
$q->end_form,
$q->start_form(-action=>'del2.cgi',-method=>post),
$q->hidden(-name =>'id', -value =>$rec[0]),
$q->td,
$q->submit(-name =>'Action', -value =>'削除'),
$q->end_td,
$q->end_form;
}
# ステートメントハンドルクリア
$sth->finish;
# DB切断
$dbh->disconnect;
print $q->end_html;
update2.cgi

#!D:/xampp/perl/bin/perl -w
use CGI;
use DBI;
use utf8;
$q=new CGI;
print $q->header(-type =>'text/html',-charset => 'utf-8'),
$q->start_html(-title=>"DATABASE"),
$q->h1('データの更新をします');
$dbname ="trinity777";
$user ="root";
$passwd ="あなたのパスワード";
$tbname ="trinity888";
$host ="localhost";
$id=$q->param('id');
# DBに接続
$dbh=DBI->connect("DBI:mysql:$dbname;host=$host", $user, $passwd)
or die $DBI::errstr;
if(!$dbh){print "接続失敗\n";  exit;}
$dbh->do("SET NAMES utf8");
# SQL実行
$sth = $dbh->prepare(" SELECT * FROM  $tbname WHERE id ='$id' ");
if(!$sth->execute){print "SQL失敗\n";exit;}
@rec = $sth->fetchrow_array();
if(!@rec){print "データが削除されています";exit;}
print $q->start_multipart_form,
"名前",
$q->textfield(-name=>'name',-value =>$rec[2]),
$q->br,
"Eメール",
$q->textfield(-name=>'email',-value =>$rec[3]),
$q->br,
"題名",
$q->textfield(-name=>'subject',-value =>$rec[4]),
$q->br,
"コメント",
$q->textarea(-name=>'comments',-rows=>3,-columns=>50,-value =>$rec[5]),
$q->br,
"ファイル名",
$q->filefield(-name=>'uploaded_file',
                -default=>'starting value',
                -size=>50,
                -maxlength=>80,-value =>$rec[6]),
$q->br,
"年齢",
$q->textfield(-name=>'age',-value =>$rec[7]),
$q->br,
$q->reset,
$q->hidden(-name =>'id', -value =>'$id'),
$q->submit(-name =>'Action', -value =>'更新'),
$q->end_multipart_form;
$sth->finish;
# DB切断
$dbh->disconnect;
$id=$q->param('id');
$localtime = localtime();
$myname=$q->param('name');
$myemail=$q->param('email');
$mysubject=$q->param('subject');
$mycomments=$q->param('comments');
$myuploaded_file=$q->param('uploaded_file');
$myage=$q->param('age');
# DBに接続
$dbh=DBI->connect("DBI:mysql:$dbname;host=$host", $user, $passwd)
or die $DBI::errstr;
if(!$dbh){print "接続失敗\n";  exit;}
$dbh->do("SET NAMES utf8"); 
# UPDATE文作成
$sql="UPDATE $tbname SET mtime='$localtime', name='$myname', email='$myemail', subject='$mysubject', comments='$mycomments', uploaded_file='$myuploaded_file', age='$myage' WHERE id ='$id' ";
# SQL実行
$sth = $dbh->prepare($sql);
if(!$sth->execute){
    print "SQL失敗\n";
    exit;
}
# ステートメントハンドルクリア
$sth->finish;
# DB切断
$dbh->disconnect;
$q->br,
print $q->a({-href =>"mente2.cgi"} , "データベース一覧へ");
print $q->end_html;
del2.cgi

#!D:/xampp/perl/bin/perl -w
use CGI;
use DBI;
use utf8;
$q=new CGI;
print $q->header(-type =>'text/html',-charset => 'utf-8'),
$q->start_html(-title=>"DATABASE"),
$q->h1('データの削除をします');
$dbname ="trinity777";
$user ="root";
$passwd ="あなたのパスワード";
$tbname ="trinity888";
$host ="localhost";
$id=$q->param('id');
# DBに接続
$dbh=DBI->connect("DBI:mysql:$dbname;host=$host", $user, $passwd)
or die $DBI::errstr;
if(!$dbh){print "接続失敗\n";  exit;}
$dbh->do("SET NAMES utf8");
# SQL実行
$sth = $dbh->prepare(" DELETE  FROM  $tbname WHERE id ='$id' ");
if(!$sth->execute){print "SQL失敗\n";exit;}
# ステートメントハンドルクリア
$sth->finish;
# DB切断
$dbh->disconnect;
print $q->h2("削除しました"),
$q->br,
$q->a({-href =>"mente2.cgi"} , "データベース一覧へ");
$q->end_html;