0
我有一个perl
DBI
mysql
查询,看起来像这样:Perl的DBI哪里是空与未定义的变量
my $rows = get_rows(
"select id from table where column1=?, column2=? and column3=?",
$var1,$var2,$var3
);
sub get_rows {
my $sql = shift;
my @vars = @_;
my $sth = $dbh->prepare($sql);
$sth->execute(@vars);
my $rows = $sth->fetchall_arrayref();
$sth->finish();
return $rows;
}
我跑这来检查,如果一个特定的行存在包含这些增值经销商。但是我遇到的问题是处理NULL值。这些必须被选择为IS NULL
而不是=?
,这往往会丢失包含NULL值的行。例如,如果变量1,2和3包含'12'
,'23'
和undef
和table
包含12
,23
和NULL
,则查询将不返回任何结果。有没有简单的方法来将012f的undef值转换为IS NULL
值?
您的整个'get_rows'函数可以被DBI的'selectall_hashref'方法取代。 – simbabque
@simbabque,你的意思是'selectall_arrayref'。 – cjm
@cjm当然是。 – simbabque