事务的定义:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么都失败Mysql 对事务的支持:

–被操作的表必须是InnoDB类型的表(支持事务)

–Mysql常用的表类型:

MylSAM(非事务)增删改查速度快

InnoDB(事务类型)安全性高

事务处理MYSQL 命令行处理

  • Mysql> set autocommit =0;
  • Mysql> start transaction;
  • Mysql>commit
  • Mysql>rollback
    PDO 事务处理

1、关闭自动提交$pdo ->setattribute(_PDO::ATTRAUTOCOMMIT,0);

2、开启一个事务$pdo -> beginTransaction ();

$price =50;

$affect_rows=$pdo->exec(“update demo set ye=ye-{$price} where id=1”);//转出

if($affect_rows){

echo “转出成功”;

}else{

throw new PDOException(“转出失败!”);

}

$affect_out=$pdo->exec(“update demo set ye=ye+{$price} where id =2”);//转入

if($affect_out){

echo “转入成功”;

}else{

throw new PDOException(“转入失败!”);

}

$pdo->commit();//提交以上事务

如有错误 转入PDO Exception异常处理;

手动抛出PDOException异常

throw new PDOException(“转入失败!”);如果捕捉到异常就$pdo->rollback();