【发布时间】:2017-06-20 08:00:31
【问题描述】:
我在 Perl 模块中有一个 sub,Advancer.pm:
sub validate_extra {
my ($dbh, $customer_id, $site) = @_;
my $sth = $dbh->prepare(qq{
SELECT key
FROM master
WHERE
code = ?
AND set = ?
AND type_id = 2
ORDER BY customer_id DESC, site DESC
LIMIT 1
});
$sth->execute($customer_id, $site);
但是当我从测试 (.t) 调用这个模块时,我得到一个错误:
无法在 Advancer.pm 第 511 行对未定义值调用方法“prepare”。
my $sth = $dbh->prepare(qq{
是第 511 行。
【问题讨论】:
-
validate_extra的调用是什么样的?乍一看,您似乎未能传入值,或者未能传入已定义的数据库句柄。您是否验证数据库连接成功?