我有一堆存储在数据库中的配置变量,可通过以下查询访问键值对:
select * from conf_table;
我想将这些键/值对加载到CGI :: Applicaiton会话中。目前这是通过
手动完成的(因此不是从数据库,而是硬编码)$self->session->param( NAME => VALUE );
对于一堆键值对。使用DBI和某种形式的循环是否有更合理的方法呢?
由于
答案 0 :(得分:3)
你的意思是这样的吗?
my $sth = $dbh->prepare("select key, value from mytable");
$sth->execute;
$sth->bind_columns(\(my ($key, $value)));
while ($sth->fetch) {
$self->session->param($key => $value);
}
答案 1 :(得分:1)
DBI有一些方便的方法可以使这种工作更简单。试试selectall_arrayref:
my $configs = $dbh->selectall_arrayref(
'SELECT * FROM conf_table',
{ Slice => {} }, # make each row a hash
);
$self->session->param($_->{key} => $_->{value}) for @$configs;