【问题标题】:Fetch data with one row and one column from table using Perl DBI使用 Perl DBI 从表中获取一行一列的数据
【发布时间】:2013-08-04 15:38:45
【问题描述】:

我正在尝试获取像 (Select 1 from table) 这样的数据,它返回一行一列的数据。

我不想使用$sth->fetchrow_array 方法将数据检索到数组中。有什么方法可以将数据直接收集到标量变量中?

【问题讨论】:

    标签: perl dbi


    【解决方案1】:

    fetchrow_array 返回一个列表——不可能返回一个数组——你可以将它分配给任何list-like,例如my()

    my $sth = $dbh->prepare($stmt);
    $sth->execute();
    my ($var) = $sth->fetchrow_array()
       and $sth->finish();
    

    或者你可以简单地使用

    my ($var) = $dbh->selectrow_array($stmt);
    

    【讨论】:

    • fetchrow_arrayselectrow_array 的文档暗示它们在标量上下文中调用时将返回第一列或最后一列,因此虽然 my ($var) = ... 中的括号通常很重要,但它应该是可以在这里省略它们。
    【解决方案2】:
    my ($value) = @{$dbh−>selectcol_arrayref("select 1 from table")}
    

    或更好

    my ($value) = $dbh−>selectrow_array($statement);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-09
      • 2019-08-19
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2016-07-18
      相关资源
      最近更新 更多