事物:

      autocommit 自动提交(基于数据库本身自带的功能,默认为1,开启)

      终端下关闭自动提交:set autocommit=0

      关闭自动提交后,在终端下输入的指令虽然还能看到执行成功,但只是虚拟执行,并不真实实行,在navicat workbench等软件内根本查询不到相关的东西。

      只要手动关闭了自动提交的功能,那么就只有手动开启它,否则会一直都关闭。

开启事务:

      start transaction

代码;

代码;

savepoint  a;(保存回滚记录点a

代码;

savepoint   b;(保存回滚记录点b

……

rollbackto  savepoint  a

commit

 

以上代码会回滚到a,只执行最前边的两行代码。

 

PHP中执行事务:

设置异常处理:

setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

关闭自动提交

setAttribute(PDO::ATTR_AUTOCOMMIT,0)

转账的过程:

beginTransaction();

提交事务:

commit

打开自动提交:

setAttribute(PDO::ATTR_AUTOCOMMIT,0)