我尝试在do()
方法中使用DBI RaiseError
标志为ON的情况下运行某些语句,但是该语句不会失败。
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=192.168.10.101",
"test", "123456", {'RaiseError' => 1});
eval { $dbh->do("DROP TABLE foo") }; # foo table not exist
if ($@) {
print "Dropping foo failed: $@\n";
} else {
print "ok\n";
}
此代码返回ok
而不是错误。
我仅在Windows 7计算机上有此问题。 (当我在Linux上运行此代码时,会引发异常。)这是一个错误吗?
Perl版本:5.16.3, DBI版本:1.623, DBD :: mysql版本:4.022
答案 0 :(得分:0)
将DBD :: mysql更新到最新版本对我有帮助。