Perl:如何在执行$ dbh-> selectall _ ..时检索字段名称?

时间:2012-03-02 15:14:18

标签: perl dbi

$sth = $dbh->prepare($sql);
$sth->execute();
$sth->{NAME};

但在以下情况下你怎么做:

$hr  = $dbh->selectall_hashref($sql,'pk_id');

没有$sth,那么你如何获得$sth->{NAME}$dbh->{NAME}不存在。

2 个答案:

答案 0 :(得分:5)

当您查看某行时,您始终可以使用keys %$row找出它包含的列。它们与NAME完全相同(除非您将FetchHashKeyName更改为NAME_lcNAME_uc)。

答案 1 :(得分:0)

您始终可以自己准备和执行句柄,从中获取列名,然后将句柄而不是sql传递给selectall_hashref(例如,如果您想要列名但语句可能不返回任何行)。虽然你也可以在语句句柄上调用fetchall_hashref。