我正在Perl中使用DBI来访问MySQL。
return DBI->connect('DBI:mysql:MyBase:localhost', 'user', 'pass');
…
my $query = $connection->prepare($command);
my $result = $query->execute();
$query->finish;
我希望不能使用死或尝试。我只希望能够执行MySQL命令,然后在下一次调用时检查错误类型。
这可能吗?
答案 0 :(得分:2)
如connect所述:
“如果连接失败(请参见下文),它将返回undef并设置$ DBI :: err和$ DBI :: errstr。(它没有显式设置$!。)通常应测试连接的返回状态并打印$ DBI :: errstr如果失败了。”
有了句柄后,必须在每个数据库或语句句柄方法调用之后检查err方法,并且在发生错误的情况下errstr同样表示错误消息。
强烈建议使用DBIx::Connector或Mojo::Pg这样的包装程序,并且确实要求设置RaiseError,这样可以避免此代码混乱以及您忘记检查的机会错误。