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.

  • 相关阅读:
    毕业设计-角色用户管理
    质因数分解
    高次同余方程
    线性同余方程
    乘法逆元
    约数,整除
    扩展欧几里得算法
    同余
    P2303 [SDOI2012] Longge 的问题
    最大公约数(gcd)与最小公倍数(lcm)
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199947.html
Copyright © 2011-2022 走看看