PerlでフォームデータをMysqlに保存します
一番 簡単なデータというわけで いつものフォームでいきます
todb.cgi (以前のtofile.cgiと内容は一緒だけど行き先が違うよ) #!D:/xampp/perl/bin/perl use utf8; use CGI; $q = new CGI; print $q->header(-charset => 'utf-8'), $q->start_html(-title=>"Example CGI.pm Form", -style=>{'src'=>'form.css'}), $q->h1(' Example CGI.pm Form'), $q->start_div({-class=>"aaa"}), $q->p('これは class="aaa" の部分です'), $q->start_multipart_form(-action=>"<span style="color:#FF0000;font-weight:bold;">makedb.cgi</span>"), $q->em("What's your name?"), $q->br, $q->br, $q->textfield(-name=>'name'), $q->checkbox('Not my real name'), $q->br, $q->em("What's your e-mail?"), $q->br, $q->br, $q->textfield(-name=>'email'), $q->br, $q->em("What's your subject?"), $q->br, $q->br, $q->textfield(-name=>'subject'), $q->br, $q->em('Any parting comments?'), $q->br, $q->br, $q->textarea(-name=>'comments',-rows=>3,-columns=>50), $q->br, $q->br, $q->filefield(-name=>'uploaded_file', -default=>'starting value', -size=>50, -maxlength=>80), $q->reset, $q->submit(-name =>'Action', -value =>'送信'), $q->submit(-name =>'Action', -value =>'Scream'), $q->end_multipart_form, $q->end_div, $q->start_div({-id=>"bbb"}), $q->h3('これは id="bbb" の部分です'), $q->end_div, $q->start_div({-class=>"ccc"}), $q->h3('これは class="ccc" の部分です'), $q->end_div, $q->end_html;
いつもの form.css
/* --基本部分の設定-- */
body{background-color:#66ffcc;font-size:20px;line-height:20px}
h1{text-align:center;margin:0 15%;
background-color:#eea8aa;
font-size:20px;
color:#ffffff;
font-style:italic;}
em{font-size:20px;
border-bottom:dashed;
color:#808000;}
#bbb {color:#ff1493;margin:0 15%;line-height:12px;}
.ccc {color:#008000;margin:0 15%;line-height:15px;}
.aaa{border:solid 20px red;margin:2px 15%;padding:0px;line-height:20px;}
ここからが MySQL にデータを送る CGIです makedb.cgi #!D:/xampp/perl/bin/perl -w use CGI; use DBI; use utf8; $dbname = "trinity777"; $user = "root"; $passwd = "あなたの決めたパスワード入れてね"; $tbname = "cgipm"; $host = "localhost"; $q = new CGI; my $localtime = localtime(); $myname=$q->param('name'); $myemail=$q->param('email'); $mysubject=$q->param('subject'); $mycomments=$q->param('comments'); $myuploaded_file=$q->param('uploaded_file'); print $q->header(-type =>'text/html', -charset =>'utf-8'); print $q->start_html; # DBに接続 $dbh=DBI->connect("DBI:mysql:$dbname;host=$host", $user, $passwd, {RaiseError => 0, PrintError => 1}); if(!$dbh){print "接続失敗\n"; exit;} $dbh->do("SET NAMES utf8"); # INSERT文作成 $sql="insert into $tbname(mtime,name,email,subject,comments,uploaded_file) values('$localtime','$myname','$myemail','$mysubject','$mycomments', '$myuploaded_file')"; # SQL実行 $sth = $dbh->prepare($sql); if(!$sth->execute){ print "SQL失敗\n"; exit; } # ステートメントハンドルクリア $sth->finish; # DB切断 $dbh->disconnect; print "登録完了\n"; print $q->end_html;