M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年4月15日 23:33

EDGE Now!外部DBを表示する簡易ビューアを作る

このエントリーをはてなブックマークに追加 mixiチェック

昨日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__

投稿 大野 義貴 [Web] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2440

コメントする