事物:
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)
本文出自 “12244243” 博客,请务必保留此出处http://12254243.blog.51cto.com/12244243/1893050
原文:http://12254243.blog.51cto.com/12244243/1893050