/*
* 数据库事务
* data 2015/06/04
* @author Lee
*/
public function transcationLee($name){
DB::transaction(function()
{
$name = 'leedaning';
$result1 = DB::insert('insert into lees (id, name) values (?, ?)', ['', $name]); //插入一条新记录
$result2 = DB::update('update lees set name= ? where id = ?', [$name, '90']); //更新id为90的记录,id=90的记录不存在,这里是为了执行失败
if (!$result2) {
echo "<BR>result2 is bad";
DB::rollback();//事务回滚
}
});
}//end func transcationLee()
注意:DB::rollback();//事务回滚
是必须得要的,不然没有办法撤销前面已经做过的数据库操作。
补充一点:闭包函数如果要使用外部函数的变量的话可以使用use,如:DB::transaction(function()use($name)
这样闭包函数里面就能使用外部函数的变量和参数了。
Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/46412561