eval 捕获dbi错误

原创 2016年06月01日 11:20:46
[root@dr-mysql01 ~]# cat t2.pl 
use DBI;
my $dbUser='zabbix';
my $user="root";
my $passwd="1234567";
my $TABLE_NAME='history_uint';
my $date='201605';
my $dbh  = DBI->connect("dbi:mysql:database=zabbix;host=192.168.32.55;port=3306",$user,$passwd,{RaiseError => 1}) or die "can't connect to database ". DBI-errstr;
my $hostSql = qq{select TABLE_NAME,PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS where TABLE_NAME='$TABLE_NAME' and PARTITION_NAME like "p$date%";};
print "\$hostSql is $hostSql\n";
my ($a1, $a2);
#if ($a1){
my $selStmt = $dbh->prepare($hostSql);
$selStmt->execute();
$selStmt->bind_columns(undef, \$a1,\$a2);
print "\$a1 is $a1\n";
print "\$a2 is $a2\n";
print $selStmt->fetch();
print "\n";
 eval {$selStmt->fetch()};
print "\$@ is $@\n";;
print "\n";
[root@dr-mysql01 ~]# perl t2.pl 
$hostSql is select TABLE_NAME,PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS where TABLE_NAME='history_uint' and PARTITION_NAME like "p201605%";
$a1 is 
$a2 is 
ARRAY(0x2324778)
$@ is 



[root@dr-mysql01 ~]# cat t2.pl 
use DBI;
my $dbUser='zabbix';
my $user="root";
my $passwd="1234567";
my $TABLE_NAME='history_uint';
my $date='201604';
my $dbh  = DBI->connect("dbi:mysql:database=zabbix;host=192.168.32.55;port=3306",$user,$passwd,{RaiseError => 1}) or die "can't connect to database ". DBI-errstr;
my $hostSql = qq{select TABLE_NAME,PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS where TABLE_NAME='$TABLE_NAME' and PARTITION_NAME like "p$date%";};
print "\$hostSql is $hostSql\n";
my ($a1, $a2);
#if ($a1){
my $selStmt = $dbh->prepare($hostSql);
$selStmt->execute();
$selStmt->bind_columns(undef, \$a1,\$a2);
print "\$a1 is $a1\n";
print "\$a2 is $a2\n";
print $selStmt->fetch();
print "\n";
 eval {$selStmt->fetch()};
print "\$@ is $@\n";;
print "\n";
[root@dr-mysql01 ~]# perl t2.pl 
$hostSql is select TABLE_NAME,PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS where TABLE_NAME='history_uint' and PARTITION_NAME like "p201604%";
$a1 is 
$a2 is 

DBD::mysql::st fetch failed: fetch() without execute() at t2.pl line 19.
$@ is DBD::mysql::st fetch failed: fetch() without execute() at t2.pl line 19.

perl的异常处理die、warn、eval函数--DBI的RaiseError

在很多情况下,系统调用可能会失败;例如,尝试打开不存在的文件,或者删除某个仍含有文件的目录,或者尝试读取没有读权限的文件。在前面的示例中,我们已经用到了die函数,本节将 详细讨论有关错误处理和错误处...
  • q383965374
  • q383965374
  • 2013年11月20日 11:04
  • 5631

PERL 用EVAL 来捕捉异常Exception

$total=0;$count=0;eval { $average = $total / $count ; print "xxx/n";} ; if ($@){  print "wrong /n";}...
  • gan690416372
  • gan690416372
  • 2010年01月13日 09:41
  • 3919

eval 捕获错误

eval 捕获错误: [root@dr-mysql01 ~]# cat t1.pl use DBI; my $dbUser='zabbix'; my $user="root"; my $passwd...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年06月01日 10:25
  • 190

js之异常捕捉

今天看了javascript的书籍,刚知道js也可以使用异常捕捉机制。实现了可以捕捉到弹出框的错误。 function tst() { try { alllert...
  • scu_Bao
  • scu_Bao
  • 2015年09月26日 23:21
  • 1124

Ruby学习札记(4)-安装dbi(解决deprecate问题)

Ruby学习札记(4)-安装dbi(解决deprecate问题)dbi,即database interface,是Ruby访问数据库的模块,提供访问多种数据库的接口。Architecture of a...
  • DayDreamingBoy
  • DayDreamingBoy
  • 2011年05月30日 19:18
  • 4094

Windows perl dbi oracle环境配置

C:\Users\Administrator\Desktop\perl 大骆驼\画图>set | findstr Oracle LD_LIBRARY_PATH=C:\Perl\lib\auto\DBD...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2015年12月25日 16:22
  • 505

Win32环境下 Perl DBI安装

环境建立安装MySQL  5.0Win32环境下安装Active Perl,默认安装中是不包含DBI数据库包的,以在http://ppm.activestate.com/PPMPackages/zip...
  • luciferic
  • luciferic
  • 2007年03月06日 11:33
  • 1588

Centos 安装DBI和ORACLE DBD

Centos 安装DBI和ORACLE DBD tar -zxvf DBI-1.616.tar.gz cd DBI-1.616 perl Makefile.PL make...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2015年05月22日 09:52
  • 441

ubuntu安装DBI,DBD-MYSQL

CPAN进入后, >install DBI DBD-MYSQL: sudo apt-get install libdbd-mysql-perl
  • wang_xingg
  • wang_xingg
  • 2017年03月17日 17:48
  • 816

Perl安装和使用DBI

还可以从cpan.perl.org站点下载tar压缩文件形式的源代码发行版本,解压缩后,切换到相应的文件目录 cd DBI-1.54 perl Makefile.PL make make test m...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2014年09月02日 17:43
  • 1235
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eval 捕获dbi错误
举报原因:
原因补充:

(最多只允许输入30个字)