美文网首页
TP5中CURD那点事儿(二)

TP5中CURD那点事儿(二)

作者: 铁匠简记 | 来源:发表于2018-05-07 11:45 被阅读12次
    return返回
        return 不能返回数组
        $data = [a,c,d];
        return json($data);
        return json($data,201); 改状态码
        return xml($data);
        return $this->fetch();
        return view();
    
    跳转
        $this->success('成功','index/hello');
        $this->error('失败','/admin/index/index.html?name=lisa&sex=0');
        $this->redirect('同上');
    
    数据库基本操作:
    
    查询构造器:CURD操作可直接传数组
        1、表名必须带前缀的完整表名;
        Db::table('tp_data') ->insert(['id'=>6,'name'=>'thinkphp']);
        Db::table('tp_data') ->where('id',2)-update(['date' => '2']);
        2、表名不带前缀;
            Db::name('data')->.....
        3、助手函数,也不带前缀,还不用引入,直接用
        db('data')->......
    
    
    事务的应用
        首先保证存储引擎为InnoDB
        需要把要执行的操作放进闭包,即可自动完成事务
        Db::transaction(function (){
            Db::table('tp_data')->delete(2);
            Db::table('tp_data')->insert(['id' => 9,'name'=>'thinkphp','status'='1']);
        });
    
        手动控制事务的提交
        //启动食事务
        Db::startTrans();
        try{
                Db::table('tp_data')->delete(2);
                Db::table('tp_data')->insert(['id' => 9,'name'=>'thinkphp','status'='1']);
                //提交事务
                Db::commit();
        } catch( \Exception $e) {
                //回滚事务
            Db::rollback();
        }
    
    
    查询语言:
        Db::name('data')->where('id','between',[1,9])->select();
        Db::name('data')->where('name',null);
        Db::name('data')->where('id','exp',"in(1,2,3,4)")->select();
        Db::name('data')->where('id','exp',">1")->select();
        Db::name('data')->where('id','exp',">1 and name='zhangsan'")->select();
        Db::name('data')->where('id','>=',1)
                        ->where('name','like','%php%')
                        ->select();//两个where为and关系
        Db::name('data')->where(['id'=>['>='1],
                                'name'=>['like','%php%']
                                ])
                        ->select();
    
    批量查询
        $res = Db::name('data')
            ->where([
            'id'=>[['in',[5,6,7,8]],['<='1],'or'],
            'name'=>['like','%php%'],
            ])
            ->limit(10)
            ->select();
    
    快捷查询:
        $res = Db::name('data')
            ->where('id&status','>',0)     ('id | status','>' 0 );
            ->limit(10)
            ->select();
    
    
    视图查询
        $res = Db::view('table1','id,name,status')
            ->view('table2',['nickname'=>'user_name','mobile','email'],table2.user_id=table1.id)
            ->order('id desc')
            ->select();
    
    Query 对象使用
        $query = new \think\db\Query;
        $query = name('data')->where('name','like','%php%')
            ->where('id','>=','1')
            ->limit(10);
        $res = Db::select($query);
    

    相关文章

      网友评论

          本文标题:TP5中CURD那点事儿(二)

          本文链接:https://www.haomeiwen.com/subject/elpmrftx.html