0

下面是我用于在 crontab 上运行的脚本的 perl 代码

if($enable_family_members==0)
{
  my $sql="select name from test where testid IN (". join(',',  @set) . ')';
  my $sth = $dbh->prepare($sql);
  $sth->execute or die "SQL Error: $DBI::errstr\n"; 
}

while (my ($name)=$sth->fetchrow_array())
{
  print "name: $name";
}  

当我尝试运行此脚本时出现错误Can't call method "fetchrow_array" on an undefined value at line 9。当我尝试在 $sth 中使用our 关键字而不是my 关键字时,我没有收到错误。解决此错误的正确方法是什么。

4

1 回答 1

3

您的$sth变量仅在if块内可见。尝试:

if($enable_family_members==0) {
    my $sql="select name from test where testid IN (". join(',',  @set) . ')';
    my  $sth = $dbh->prepare($sql);
    $sth->execute or die "SQL Error: $DBI::errstr\n"; 
    while (my ($name)=$sth->fetchrow_array()) {
        print "name: $name";
    }
}
于 2013-10-03T12:55:43.593 回答