我正在使用 Dancer::Plugin::Database 从我的 dancer 应用程序连接数据库。对于单连接来说它工作得很好。当我尝试多个连接时出现错误。如何添加多个连接。
我在 config.yml 文件中添加了以下代码:
plugins:
Database:
connections:
one:
driver: 'mysql'
database: 'employeedetails'
host: 'localhost'
port: 3306
username: 'remya'
password: 'remy@'
connection_check_threshold: 10
dbi_params:
RaiseError: 1
AutoCommit: 1
on_connect_do: ["SET NAMES 'utf8'", "SET CHARACTER SET 'utf8'" ]
log_queries: 1
two:
driver: 'mysql'
database: 'employeetree'
host: 'localhost'
port: 3306
username: 'remya'
password: 'remy@'
connection_check_threshold: 10
dbi_params:
RaiseError: 1
AutoCommit: 1
on_connect_do: ["SET NAMES 'utf8'", "SET CHARACTER SET 'utf8'" ]
log_queries: 1
然后我尝试使用以下代码连接数据库:
my $dbh=database('one');
my $sth=$dbh->prepare("select * from table_name where id=?");
$sth->execute(1);
我遇到编译错误,“无法解析配置文件”
请提出解决方案。
提前致谢
最佳答案
YAML 要求哈希键的缩进一致。从“two:”之前删除四个空格,它应该解析。
更新:我发现对缩进进行了一些编辑;回到原来的问题会在不同的地方产生解析错误,并显示正在使用的制表符和空格的混合;尝试始终仅使用制表符或仅使用空格。您可以测试您的文件并找到哪一行产生第一个错误,如下所示:
$ perl -we'use YAML::Syck; LoadFile "config.yml"'
Syck parser (line 19, column 16): syntax error at -e line 1, <> chunk 1.
还要确保您的 key 都以正确的散列结束(制表符和空格的混合似乎允许出现错误,但仍然可以成功解析):
perl -we'use YAML::Syck; use Data::Dumper; $Data::Dumper::Sortkeys=$Data::Dumper::Useqq=1; print Dumper LoadFile "config.yml"'
关于perl - 无法使用 Dancer::Plugin::Database 连接到多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13717588/