MySQL: 2006年9月アーカイブ
WEBページのFORM上で入力したデータを、mySQLのDBに格納するテストに成功!
パッケージとライブラリの使い方がだいぶ身についてきた。
今回初めて、
・cgi-lib.pl
・jcode.pl
を導入しました。
cgi-libは便利ですねー。
FORMデータを扱うのが一瞬でできました。
今まで一からコードを書いてた(コピペしてた)のがあほらしくなりました。
僕は「とほほのwww入門」でperlとcgiを覚えたので、ずっとあそこのサイトのコードを使いまわしてました。
wwwboardを改造してcgiを作ってました。
これは、あくまでperl/cgiの動作を見せるためのサンプルなので、本格的なWEBアプリには向いてなかったんですね。
とほほ。今気づきました。
コード書き直さなくっちゃ。
LAMP(Perl)の環境で、phpMyAdminからSQL文(insert)を発行してDBに日本語文章を格納し、
それをPerlのDBIで読み出したら謎の文字化けが・・・
文字コードをS-JIS,EUC,UTF8のどれで試してもうまくいかん。
う~ん誰か助けて!!
PerlでDBIモジュールを使ってmySQLを操作できるようになりました!
ワーイワーイ。(^^)
これでやっと、
LAMPデビューです!!
パチパチ
( 注: LAMP = Linux, Apache, mySQL, Perl/PHP )
長く苦しいい道のりだった。くくく・・・
超簡単なアプリを作ったので公開します。
前回と同じタイムスタンプです。
前回は裏の仕組みがPerl+CSVでしたが、今回はリッチにPerl+DBI+mySQLです。
大いなる第一歩です。
ああ感激。
ソースはこれ↓
========== dbi_timestamp.cgi ==============
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
use DBI;
$user = '***';
$passwd = '***';
$dbh = DBI->connect('DBI:mysql:db:localhost', $user, $passwd);
$sth = $dbh->prepare("
INSERT INTO timestamp
VALUES(NULL);
");
$sth->execute;
$sth = $dbh->prepare("
SELECT * FROM timestamp ORDER BY timestamp DESC
");
$sth->execute;
while(@a = $sth->fetchrow_array){
print "$a[0]\n";
}
$sth->finish;
$dbh->disconnect;
print "DBI test is done!\n";
====================================
参考サイト
http://2php.jp/mysql/insert.html
http://www.rfs.jp/sb/sql/index.html