5ucms论坛
标题:
9 thinkphp 数据库-事务、链式操作
[打印本页]
作者:
admin
时间:
2019-5-30 20:40
标题:
9 thinkphp 数据库-事务、链式操作
5、查询构造器
//插入记录
Db::table('tp_data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
Db::name('data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
//更新记录
Db::table('tp_data')->where('id',2)->update(['name'=>'hello']);
//查询记录
$list = Db::table('tp_data')->where('id',2)->select();
//删除数据
Db::table('tp_data')->where('id',2)->delete();
6、DB链式操作
//查询十个满足条件的数据,并按照id倒序排列
$list = Db::name('data')->where('status',2)->field('id,name')->order('id','desc')->limit(10)->select();
dump($list);
7、事物支持
//几个操作同步进行,如果有异常,同步撤销。如转账操作,A钱少,B钱加,有一个失败,则回滚。
//事务支持,在Mysql数据库中请设置表类型为InnoDB
//把需要执行的事物操作封装到闭包里面即可自动完成事务
Db::transaction(function(){
Db::table('tp_data')->delete(1);
Db::table('tp_data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
});
//手动控制事物的提交
//启动事物
Db::startTrans();
try{
Db::table('tp_data')->delete(1);
Db::table('tp_data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
//提交事务
Db::commit(); //不加此行则用于测试,最终不作提交,只判断能否执行
echo 'try ok!';
} catch (\Exception $e){
Db::rollback(); //回滚事务
echo 'fail!back!';
}
复制代码
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2