PHP基础 mysqli的事务处理

1: <?php
//                PHP 的mysqli的事务处理
//========================================================
//执行多条sql语句,如果都成功则提交事务,如果一个执行失败则回滚事务
//把多条sql语句的执行看成一个sql语句,要么都成功,要么都失败
//例:银行转账
//mysql4.0以上版本都启用了事务
//但目前只有InnoDB和BDB两种表类型支持事务,
//在命令行中:默认创建的表类型为MyISAM表类型,是不支持事务的
//在命令行中建表时添加 type=InnoDB ,默认自动提交事务autocommit,不能回滚
//手动提交:
//1.关闭自动提交 set autocommit=0;
//2.开启事务 start transaction (mysqli中不需要开启,自动开启)
//3.$mysqli->query($sql); 执行sql
//4.判断执行是否成功
//5.如果都成功,则提交事务commit(),否则回滚事务 rollback()
  17:  
//创建连接对象
);
  20:  
if($error=$mysqli->connect_error){
.$error);
  23: }
  24:  
//设置传输字符编码
'set names utf8');
// 或者
  29:  
//关闭自动提交事务
false);
  32:  
true;
  34:  
  35: $price=50;
  36:  
;
;
  39:  
//执行sql语句
  41: $result1 = $mysqli->query($sql1);
if(!$result1) {
false;
;
  45: }
if($mysqli->affected_rows==0)
  47: {
false;
;
  50: }
  51:  
//执行sql语句
  53: $result2 = $mysqli->query($sql2);
if(!$result2){
false;
;
  57: } 
if($mysqli->affected_rows==0)
  59: {
false;
;
  62: }
  63:  
//判断执行过程是否出错,如果语句都执行成功则提交事务,否则回滚事务
if ($error) {
  66:     $mysqli->commit();
;
else {
  69:     $mysqli->rollback();
;
  71: }
  72:  
//打开自动提交事务
true);
  75:  
  76: $mysqli->close();
  77: ?>