我正在使用fetchall_hashref從mysql數據庫中獲取滿足條件的數據。檢索到的數據將存儲在散列中,然後通過javascript函數使用futhur。從數據庫獲取所有數據使用fetchall_hashref
我想檢索3列的所有行並將其存儲在散列中,但無法做到這一點。
表結構..
表數據..
正在使用的代碼..
#!/usr/bin/perl -w
#print "Content-type: text/html\n\n";
use DBI;
use CGI;
use strict;
use warnings;
use diagnostics;
use Data::Dumper;
use CGI::Carp qw (fatalsToBrowser);
my $q = CGI->new;
print $q->header;
my $dsn = "DBI:mysql:Demo:localhost"; # Data source name
my $username = "mint"; # User name
my $password = "MINT123"; # Password
my $dbh;
my $sth;
my $b;
my $c;
# Database and statement handles
$dbh = DBI->connect($dsn, $username, $password);
my $hash = $dbh->selectall_hashref("SELECT `desc`,date1,riskval from FIR2 where date1 between date_sub(now(),INTERVAL 1 WEEK) and now() order by date1", 'riskval');
print Dumper($hash);
$b=join(",",$hash);
delete $_->{riskval} for values %$hash;
$dbh->disconnect();
輸出我在瀏覽器中獲取...
膩子輸出..
正如你可以看到我想要打印的行,其中「riskval 「爲空,」riskval「的值是5在2個地方,但只有1行正在打印。
後,我用selectall_arrayref取代selectall_hashref我得到了以下e RROR消息中油灰..
請幫助..
哈希不能有多個相同的密鑰,所以你必須使用陣列的散列或類似的東西來改變做法。 –
你能舉個例子嗎? – Lucy
當然,http://perldoc.perl.org/perldsc.html#Declaration-of-a-HASH-OF-ARRAYS –