我的关联数组在哪里?如何使用Perl DBI访问它?

时间:2010-06-18 18:52:18

标签: perl syntax dbi

我正在使用perl,并使用DBI。到目前为止,我一直在使用 - > fetchall_arrayref来获取数据库查询的结果,并且只是通过数字键访问数组。但是,我更喜欢能够通过字段名称(关联提取)访问记录而不是数字。

我该怎么做,以及访问密钥的正确语法是什么?

我更喜欢这样的东西:

$data[0]['name']

而不是:

$data[0][1]

工作解决方案

my %data;
@{$data{$id}}{('name')} = 'something';

3 个答案:

答案 0 :(得分:5)

阅读DBI docs。特别是fetchall_hashref

你还应该学习Perl语法,因为它与PHP不同。

答案 1 :(得分:5)

您可以使用selectall_arrayref。以下是DBI联机帮助页面中的示例:

  

您可能经常需要获取行数组,其中每行都存储为哈希值。        这可以通过以下方式简单地完成:

  my $emps = $dbh->selectall_arrayref(
      "SELECT ename FROM emp ORDER BY ename",
      { Slice => {} }
  );
  foreach my $emp ( @$emps ) {
      print "Employee: $emp->{ename}\n";
  }

答案 2 :(得分:2)

如果您执行fetchall_hashref(),那么您将获得正在寻找的哈希值。键将是数据库中的字段名称。我有点晚了,乔得到了它,但它会的。

$data->{0}->{'field'};