我有这个代码:
my (@matches, @vars);
if ($date_to) {
push(@matches, q{ m.mentioned_at <= ? });
push(@vars, $date_to);
}
if ($person) {
push(@matches, q{ t.name like ? });
push(@vars, $person);
}
if ($show) {
push(@matches, q{ t.name like ? });
push(@vars, $show);
}
if (@vars){
my $where = join (' and ', @matches);
$where = qq{where $where} if @matches
$res = $db->do({ page => $.p, per_page => $.s }, q{
select m.id, m.body, m.link,
count(distinct(m.id)) as num_items
from mentions m
$where
group by m.id, m.body, m.link,
order by m.created_at desc
}, @vars );
}
print STDERR Dumper ($where);
$VAR1 = 'where m.mentioned_at <= ? and t.name like ? ';`
print STDERR Dumper (@vars);
$VAR1 = '2012/06/01';
$VAR2 = 'Adby Phil';`
为什么我有这个错误:
called with 2 bind variables when 0 are needed
Can't use an undefined value as an ARRAY reference
似乎它没有看到 $where 子句。