5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6719|回复: 0

[TP5学习] 9 thinkphp 数据库-事务、链式操作

[复制链接]

670

主题

785

帖子

8228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8228
发表于 2019-5-30 20:40:30 | 显示全部楼层 |阅读模式
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、事物支持
  1. //几个操作同步进行,如果有异常,同步撤销。如转账操作,A钱少,B钱加,有一个失败,则回滚。
  2. //事务支持,在Mysql数据库中请设置表类型为InnoDB
  3. //把需要执行的事物操作封装到闭包里面即可自动完成事务
  4. Db::transaction(function(){
  5.         Db::table('tp_data')->delete(1);
  6.         Db::table('tp_data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
  7. });
  8. //手动控制事物的提交
  9. //启动事物
  10. Db::startTrans();
  11. try{
  12.         Db::table('tp_data')->delete(1);
  13.         Db::table('tp_data')->insert(['id'=>18,'name'=>'tp5','status'=>1]);
  14.         //提交事务
  15.         Db::commit(); //不加此行则用于测试,最终不作提交,只判断能否执行
  16.         echo 'try ok!';
  17. } catch (\Exception $e){
  18.         Db::rollback(); //回滚事务
  19.         echo 'fail!back!';
  20. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-3-29 09:25 , Processed in 0.093750 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表