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.

  • 相关阅读:
    二分优化lis和STL函数
    D8 双连通分量
    Apicloud 之按两次后退键退出应用
    Js 之正则验证手机号、QQ、身份证等
    PHP 之循环创建文件夹
    招聘系统
    Mysql 之根据经纬度按距离排序
    PHP 之根据两个经纬度计算距离
    PHP 之Mysql优化
    Tkinter 之使用PAGE工具开发GUI界面
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199946.html
Copyright © 2011-2022 走看看