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函数,本节将 详细讨论有关错误处理和错误处...

Perl中DBI、DBD::mysql模块的安装和可能出现的错误解决方法

使用的软件版本 DBI-1.604.tar.gz DBD-mysql-4.006.tar.gz 建议使用以上版本搭配,否则可能连接mysql错误 一、DBI的安装  wget http:...

PCIE协议解析 synopsys IP DBI and LBC 读书笔记(6)

6.1   Data Integrity 为了保证数据的完整性,系统在不同的节点采用了不同的措施,主要包括: ■ “Wire Protection (ECRC)” on page 94 ■ “...

LCD接口分类/DPI/DBI/DSI总结

LCD有三种接口。 一、第一种描述 1.CPU 接口,一般的有8/9/16/18/24bit,如果baseband有LCD的CPU接口直接对应接上就可以了,对于MTK平台,一般从低位接起,比如说B...

LCD-DBI接口与DPI接口与DSI接口

(1)DBI接口        A,也就是通常所讲的MCU借口,俗称80 system接口。The lcd interface between host processor and LCM devi...
  • quannii
  • quannii
  • 2013年04月13日 11:13
  • 2451

ruby DBI模块

1.安装 gem install dbi gem install dbd-mysql 手动安装 http://blog.csdn.net/ruby_cn/article/details/174...

Perl DBI

1.描述 Perl DBI是一个Perl语言的数据库访问API。DBI定义了一系列函数,变量和惯例提供一个独立于具体数据库的一致性的数据库接口。记住DBI仅仅是一个接口是很重要的。在应用程序和一个/...
  • Janepen
  • Janepen
  • 2012年01月05日 09:06
  • 735

dB,dBi, dBd, dBc,dBm,dBw的区别

在无线通信行业,经常会涉及到dB,dBi, dBd, dBc,dBm,dBw的问题,其定义如下:1、dB dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相...

安装DBI和DBD包

DBI(Database Interface)是perl连接数据库的接口。其是perl连接数据库的最优 秀方法,他支持包括Orcal,Sybase,mysql,db2等绝大多数的数据库,本文将简要...

perl DBI使用详解

perl DBI使用详解 使用DBI的方法: ---------------------------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eval 捕获dbi错误
举报原因:
原因补充:

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