會話變量我有一堆存儲在數據庫中的配置變量,鍵值對通過以下查詢accessable:的Perl - CGI ::應用 - 創建一個從數據庫
select * from conf_table;
我想加載這些鍵/值對組合成CGI :: Applicaiton會話。目前這是手動完成(所以不是從數據庫,但硬編碼)通過
$self->session->param(NAME => VALUE);
對於一堆鍵值對。對於DBI和某種形式的循環,有沒有更明智的做法?
謝謝
會話變量我有一堆存儲在數據庫中的配置變量,鍵值對通過以下查詢accessable:的Perl - CGI ::應用 - 創建一個從數據庫
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;
什麼樣的數據庫? –
這是一個Oracle數據庫,我可以通過DBI連接到它,我基本上是問如何用DBI(最明智的方式這樣做)以及如何將結果分配給CGI :: App :: Sessions最明智的方法。 –