Я использую fetchall_hashref для получения данных, удовлетворяющих условию из DB mysql. Полученные данные будут сохранены в хеше, а затем будут использованы futhur с помощью функции javascript.Получить все данные из БД с помощью 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 "имеет значение null, значение" riskval "равно 5 в 2 местах, но печатается только одна строка.
после того, как я заменил selectall_hashref с помощью selectall_arrayref, я получил следующее e rror сообщение замазкой ..
Пожалуйста, помогите ..
хэш не может иметь несколько одинаковых ключей, так что вам придется изменить подход с использованием хэш-массивов или что-то подобное. –
Можете ли вы привести пример ??? – Lucy
уверен, http://perldoc.perl.org/perldsc.html#Declaration-of-a-HASH-OF-ARRAYS –