我想获取像(Select 1 from table
)这样的数据,它返回一行一列的数据。
我不想使用$sth->fetchrow_array
方法将数据收集到数组中。有没有办法直接将数据收集到标量变量中?
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);
my ($value) = @{$dbh−>selectcol_arrayref("select 1 from table")}
my ($value) = $dbh−>selectrow_array($statement);
fetchrow_array
和selectrow_array
的文档表明,当在标量上下文中调用时,它们将返回第一列或最后一列,因此虽然my ($var) = ...
中的括号通常很重要,但在这里可以省略它们。 - ikegami