1

我是 Perl 的初学者,我遇到了这个问题:

my $query = qq {select a1, count(b2), c3 from tab where d1 = ? group by a1, c3 };  
my $res = $dbh->selectall_hashref( $query,{ Slice => {} }, $id->[0]); 

执行代码时,我得到:

DBI::st=HASH()->_prepare(...): attribute parameter  is not a hash at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql.pm line 224.

我做错了吗?

感谢您的关注。

4

2 回答 2

3

我感觉你的意思是使用 selectall_arrayref。selectall_hashref 需要一个额外的参数(在 SQL 和属性之间),指定应该将哪个字段用作返回的哈希中的哈希键。

于 2014-02-10T13:31:52.260 回答
1

尝试

my $query = "select a1, count(b2), c3 from tab where d1 = ? group by a1, c3";
my $res = $dbh->prepare($query) or die("cannot prepeare");
$res->execute('10');
于 2014-02-10T12:57:16.943 回答