我正在实施简单的文件共享服务。目前我使用基于文件的数据库(因为它适合我的需要)。
# somewhere in my cgi script
sub first_run
{
my $dbh = DBI->connect('dbi:DBM:');
$dbh = DBI->connect("dbi:DBM:", "", "",{ AutoCommit => 1, RaiseError => 1, f_dir=>$DATABASE_DIR} );
unless ($dbh)
{
print "<br>Cannot connect: $DBI::errstr";
return undef;
}
$dbh->do("CREATE TABLE uploads( user_name TEXT,
file_name TEXT,
upload_date TEXT ) ");
$dbh->disconnect( );
}
如您所见,我建议将上传时间戳存储为字符串,因为目前我只需要显示它(假设使用 localtime() 来获取人类可读格式的时间戳)。但这在我看来有些糟糕。如果稍后我想显示某个时期的上传内容,等等。
在不使用第三方 CPAN 模块的情况下,在 DBM 数据库中存储时间戳的常用方法是什么?我以后如何将它们拉出来并显示给用户(在我的情况下,转换回字符串)?