我正在创建数据库
sqlite3 database
create table if not exists entries (
id integer primary key autoincrement,
title string not null,
text string not null
);
^D我应该把这个数据库放在哪里?之后
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'),
};
};在"desk“附近收到一个错误运行时错误:语法错误在/home/ultramozg/App/lib/App.App第40行,第16行
这是我的错吗?
发布于 2013-09-24 04:34:55
我强烈建议您使用Dancer::Plugin::Database,而不是您提议的connect_db例程。这样做可能会产生剩余的开放连接,因此会产生各种各样的问题。Dancer::Plugin::Database为您处理持久连接。插件文档:
https://metacpan.org/pod/Dancer::Plugin::Database
一旦您安装了Dancer::Plugin::Database并在config.yml中对其进行了配置,那么无论何时需要数据库句柄,您只需:
my $dbh => database('my_database_name');完成后不要费心断开连接。
如果您使用的是ubuntu,只需:
apt-get install libdancer-plugin-database-perl祝你的项目好运!
发布于 2013-09-21 21:30:44
您有一个^D字符作为起始字符-第一部分的最后一行。请学习阅读输出。它会告诉您第16行。
检查"desk“一词在代码中出现的位置。
https://stackoverflow.com/questions/18933156
复制相似问题