Commit and Rollback : Transaction « Database « Perl

Home
Perl
1.Array
2.CGI
3.Class
4.Data Type
5.Database
6.File
7.GUI
8.Hash
9.Language Basics
10.Network
11.Regular Expression
12.Report
13.Statement
14.String
15.Subroutine
16.System Functions
17.Win32
18.XML
Perl » Database » Transaction 




Commit and Rollback
   

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],
               'B'2],
               'C'2],
               'D'6],
          );
my $sql = qqINSERT INTO teams VALUES ?, ?, ? ) };
my $sth = $dbh->prepare$sql );
foreach $param (@rows) {
    eval 
        $sth->bind_param1, $param->[0], SQL_VARCHAR );
        $sth->bind_param2, $param->[1], SQL_INTEGER );
        $sth->bind_param3, $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();
   print "Success!\n";
}
$sth->finish();
$dbh->disconnect();

                      

   
    
    
  














Related examples in the same category
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.