我在数据库中存储了一堆配置变量,可通过以下查询访问键值对:
select * from conf_table;
我想将这些键/值对加载到 CGI::Applicaiton 会话中。目前这是通过手动完成的(所以不是来自数据库,而是硬编码)
$self->session->param( NAME => VALUE );
对于一堆键值对。使用 DBI 和某种形式的循环是否有更明智的方法?
谢谢
我在数据库中存储了一堆配置变量,可通过以下查询访问键值对:
select * from conf_table;
我想将这些键/值对加载到 CGI::Applicaiton 会话中。目前这是通过手动完成的(所以不是来自数据库,而是硬编码)
$self->session->param( NAME => VALUE );
对于一堆键值对。使用 DBI 和某种形式的循环是否有更明智的方法?
谢谢
你的意思是这样的?
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);
}
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;