fetchall_hashref を使用して、mysql DB から条件を満たすデータを取得しています。取得したデータはハッシュに格納され、javascript 関数によって使用されます。
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」が null の行を印刷したいのですが、「riskval」の値は 2 か所で 5 ですが、1 行だけが印刷されています。
selectall_hashref を selectall_arrayref に置き換えた後、パテに次のエラー メッセージが表示されました。
助けてください..