mysql事务中,可能有多条sql执行,其中有一条执行失败,整个事务就会回滚。以前我自己理解的意思是,只要有一条sql的返回结果为false,那么事务就会回滚,不过现在看来是我理解错了。这里说的执行失败是指
一,sql语句发生了语法错误:比如:Db::names('t1').....
二,由于数据库设计规则导致的执行失败;如:一个表中的字段设置为了唯一,那插入重复的值时就会执行失败,导致事务回滚。
// 启动事务
2.Db::startTrans();
3.try{
4. Db::table('think_user')->find(1);
5. Db::table('think_user')->delete(1);
6. // 提交事务
7. Db::commit();
8.} catch (\Exception $e) {
9. // 回滚事务
10. Db::rollback();
11.}