Perl数据库连接

时间:2016-10-21 16:33:42

标签: perl dbi

我是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的值。它的类似连接失败,但我没有得到任何错误。我也检查了日志文件,没有任何显示。我该怎么做才能检查错误?感谢您的任何意见和帮助。

2 个答案:

答案 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";
 }