zoukankan      html  css  js  c++  java
  • eval 捕获dbi错误

    [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
    ";
    my ($a1, $a2);
    #if ($a1){
    my $selStmt = $dbh->prepare($hostSql);
    $selStmt->execute();
    $selStmt->bind_columns(undef, $a1,$a2);
    print "$a1 is $a1
    ";
    print "$a2 is $a2
    ";
    print $selStmt->fetch();
    print "
    ";
     eval {$selStmt->fetch()};
    print "$@ is $@
    ";;
    print "
    ";
    [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
    ";
    my ($a1, $a2);
    #if ($a1){
    my $selStmt = $dbh->prepare($hostSql);
    $selStmt->execute();
    $selStmt->bind_columns(undef, $a1,$a2);
    print "$a1 is $a1
    ";
    print "$a2 is $a2
    ";
    print $selStmt->fetch();
    print "
    ";
     eval {$selStmt->fetch()};
    print "$@ is $@
    ";;
    print "
    ";
    [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.

  • 相关阅读:
    【codeforces 785B】Anton and Classes
    【codeforces 785C】Anton and Fairy Tale
    【t003】string
    【BZOJ 1028】[JSOI2007]麻将
    【t011】最小覆盖子串
    【BZOJ 1029】[JSOI2007]建筑抢修
    cgb2008-京淘day02
    抽象类与接口概念及代码实例
    【hihocoder 1296】数论三·约瑟夫问题
    【hihocoder 1295】Eular质数筛法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350739.html
Copyright © 2011-2022 走看看