EDGE Now!外部DBを表示する簡易ビューアを作る
スポンサードリンク
昨日EDGE Now!の内部にあるであろうデータベースを外部に設けたわけですが、これを活用するため、まず作ったDBの最新50件を表示する簡単なスクリプトを用意します。
Filename: db.cgi
#!/usr/bin/perl use strict; use warnings; use CGI; use DBI; my $q = CGI->new(); print $q->header(-type => 'text/plain', -charset =>'UTF-8', ); print <<'END_OF_TEXT'; id | ctime | eid | url | title | END_OF_TEXT my $dbh = DBI->connect( 'dbi:SQLite:dbname=edgenow_sites.db', undef, undef , {AutoCommit => 0} ); my $sth = $dbh->prepare( 'SELECT * FROM urls ORDER BY id DESC LIMIT 50' ); my $res = $sth->execute(); while( my $ref = $sth->fetchrow_hashref ){ printf( "%6d|%-18s|%6d|%s|%s\n", $ref->{id}, $ref->{ctime}, $ref->{entryid}, $ref->{url}, $ref->{title}, ); } $dbh->commit; exit; __END__
これは実際にアクセスできます。
http://labo.dtpwiki.jp/edgenow/db.cgi
よく見ますと、サイトにはじめて登録された順番に並んでくれています。おお、これ使うと新着RSSできるんじゃね? ていうことで次回このDBを使ってRSSを作ります。
おまけ。さっきの表示スクリプト、もっとアジャイルに作りたいというのであれば、sqlite3を使って、こういうのもありかも。
Filename: db2.cgi
#!/usr/bin/perl use strict; use warnings; use CGI; my $q = CGI->new(); my $res = `sqlite3 edgenow_sites.db 'SELECT * FROM urls ORDER BY id DESC LIMIT 50;'`; print $q->header(-type => 'text/plain', -charset =>'UTF-8', ); print <<'END_OF_TEXT'; id | ctime |eid | url | title | END_OF_TEXT print $res; exit; __END__
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2440
コメントする