//具体的讲解请允许我把它放在了 http://www.ichasem.com/?p=331 这里
1、开启事务方法 starttrans()
2、事务提交方法 commit()
3、事务回滚方法 rollback()
用法例子:$order = m(‘order’);
$alladded = true; //先设定一个值为 true;
$data['name'] = 'winter';
$order->starttrans(); //开启事物
for($i = 1;$i $sign = $order->add($data); //添加一条数据到order表
if(!$sign){
$order->rollback(); //如果order添加失败事物回滚
$alladded = false; //并且把alladded设置为 false
}
}
//回滚
if($alladded){
$order->commit();
// 如果alladded为真则两条数据都成功;那么 commit事物提交
echo '添加成功';
}else{
echo '添加失败';
}小解析:如果commit了。那么就提交插入数据。如果发现alladded为假说明有条数据没插入正确。那么就rollback回滚就会取消事物开启之后操作数据库的所有行为。
winter在提供一个例子助于大家加深理解~public function insertdata(){
$model = m();
$model->starttrans();
$data['name'] = 'winter';
//增加一条用户信息
$si = $model->table(c('db_prefix').'user')->add($data);
if(!$si){
$model->rollback();
exit();
}
$car['brand'] = $si;
//增加一条用户id
$c = $model->table(c('db_prefix').'car')->add($car);
if($si && $c){
$model->commit();
}else{
$model->rollback();
}
}
ad:真正免费,域名+虚机+企业邮箱=0元
