【发布时间】:2013-09-27 10:27:05
【问题描述】:
sub connect_db {
my $dbh = DBI->connect("dbi:SQLite:dbname=".setting('database')) or
die $DBI::errstr;
return $dbh;
}
sub init_db {
my $db = connect_db();
my $schema = read_file('./schema.sql');
$db->do($schema) or die $db->errstr;
}
get '/' => sub {
my $db = connect_db();
my $sql = 'select id, title, text from entries order by id desc';
my $sth = $db->prepare($sql) or die $db->errstr;
$sth->execute or die $sth->errstr;
template 'show_entries.tt', {
'msg' => get_flash(),
'add_entry_url' => uri_for('/add'),
'entries' => $sth->fetchall_hashref('id'),
};
};
为什么重启后数据库中的系统条目没有保存?大小数据库不增加。 为什么会这样?
【问题讨论】:
-
您的代码没有将任何项目保存到数据库中。
-
您希望看到什么保存到数据库中?没有任何代码可以保存任何东西。
init_db()子例程看起来像是用于设置数据库模式,但它不是从您向我们展示的任何代码中调用的。 -
init_db() 在代码末尾调用。怎么办?