我是perl的新手,我需要连接数据库使用DBI。我的代码如下:
use LWP::Simple;
use XML::Simple qw(:strict);
use Data::Dumper;
use DBI;
use Getopt::Long;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError);
use IO::File;
use warnings;
$dbh = DBI->connect("dbi:ODBC:DSN=$dbName;Server=$dbHost",
$dbUser,
$dbPassword);
if (!$dbh) {
&logMsg(0, "$DBI::errstr");
die;
} else {&logMsg(0,"Connection to $dbName DB OK")}
我已经设置了$ dbName,$ dbHost,$ dbUser和$ dbPassword的值。它的类似连接失败,但我没有得到任何错误。我也检查了日志文件,没有任何显示。我该怎么做才能检查错误?感谢您的任何意见和帮助。
答案 0 :(得分:0)
我无法发现您的代码有任何问题,除非logMsg
不起作用,但这是使用DBI的繁琐方法。
不是检查DBI是否出现问题,而是设置DBI以引发错误要好得多。您可以使用RaiseError执行此操作。
my $dbh = DBI->connect(
"dbi:ODBC:DSN=$dbName;Server=$dbHost",
$dbUser, $dbPassword,
{ RaiseError => 1 }
);
现在,如果DBI出现故障,包括尝试连接,则会抛出错误并停止程序。这样可以避免每次使用数据库时都检查错误(您会忘记)。
答案 1 :(得分:0)
DBI;
$dbh = DBI->connect('Your_Database_Name', 'user_id','Password');
my $sth = $dbh->prepare ("select * from Table_name");
$sth->execute();
my @row_ary = $sth->hetshrow_array;
foreach $item (@row_ary)
{
print "$item\n";
}