`
ShellyLi
  • 浏览: 112256 次
  • 性别: Icon_minigender_2
  • 来自: 山东
社区版块
存档分类
最新评论

Perl 数据库事务处理(提交和回滚)

    博客分类:
  • perl
阅读更多
use DBI qw(:sql_types); 

 

my $dbh = DBI->connect('dbi:mysql:sample_db','root','password',{ 

                           PrintError => 0, 
                           RaiseError => 1, 
                           AutoCommit => 0 
                         } 
          ) or die "Connection to sample_db failed: $DBI::errstr"; 

my @rows = (  
                [ 'A', 3, 5 ], 
                [ 'B', 2, 3 ], 
               [ 'C', 2, 0 ], 
                [ 'D', 6, 0 ], 
           ); 
my $sql = qq{ INSERT INTO teams VALUES ( ?, ?, ? ) }; 
my $sth = $dbh->prepare( $sql ); 
foreach $param (@rows) { 
    eval {  
        $sth->bind_param( 1, $param->[0], SQL_VARCHAR ); 
        $sth->bind_param( 2, $param->[1], SQL_INTEGER ); 
         $sth->bind_param( 3, $param->[2], SQL_INTEGER); 
         $sth->execute() or die; 
     };
if( $@ ) { # If eval failed. $@ is set to the error that occurred 
      warn "Database error: $DBI::errstr\n"; 
      $dbh->rollback(); # Reverse all commit statements 
}else{ 
    $dbh->commit(); 
   }  

  $sth->finish(); 
$dbh->disconnect();
分享到:
评论

相关推荐

    数据库并发控制机制——事务

    这是一个关于银行的数据库的处理,模仿的是从账户1转账给...那就需要用到事务,如果没有一起执行,就回滚。这个代码比较简单,希望对大家有帮助,自己建立一个数据库bank,在里面建立一个表Account,两属性:Id,money.

    mysql官方中文参考手册

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和...

    MYSQL中文手册

    言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 ...13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法...

    MySQL 5.1参考手册 (中文版)

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和...

    MySQL 5.1参考手册中文版

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES...

    MySQL5.1参考手册官方简体中文版

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和...

    MySQL 5.1参考手册

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和...

    MySQL 5.1中文手冊

    13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和...

    MySQL 5.1官方简体中文参考手册

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. ...

    mysql5.1中文手册

    获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 ...

Global site tag (gtag.js) - Google Analytics