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'),
};
};
爲什麼重啓後系統中的數據庫沒有保存?大小數據庫不會增加。 爲什麼會發生這種情況?重新啓動後舞者不在sqlite中保存數據
您的代碼不會將任何項目保存到數據庫。 – choroba
你期望看到什麼保存到數據庫?沒有保存任何代碼的代碼。 'init_db()'子例程看起來像是要建立一個數據庫模式,但它不是從你向我們顯示的任何代碼中調用的。 –
init_db()在代碼結尾處調用。怎麼做 ? –