thinkphp5学习总结!

数据库操作之原生sql操作

<?php
namespace appindexcontroller;
use thinkDb;

class Index
{
    public function index()
    {
        echo "hello world";
    }

    public function sqlAdd(){
        //插入数据
        $result=Db::execute('insert into think_test (name,state) values("周杰伦",1)');
        var_dump($result);//返回受影响的行数
    }

    public function sqlUpd(){
        //修改数据
        $result=Db::execute('update think_test set name="张学友",state=0 where id=1');
        var_dump($result);//返回受影响的行数
    }

    public function sqlDel(){
        //删除数据
        $result=Db::execute('delete from think_test where id=1');
        var_dump($result);//返回受影响的行数
    }

    public function sqlSel(){
        //查询数据
        $result=Db::query('select * from think_test');
        var_dump($result);//返回数组
    }
}

数据库操作之查询构造器

//==========================查询构造器==========================
    public function tabAdd(){
        //插入数据 如果不写表前缀 把table改为name即可
        $result=Db::table('think_test')->insert(['name'=>'段誉','state'=>1]);
        var_dump($result);
    }

    public function tabUpd(){
        //修改数据 如果不写表前缀 把table改为name即可
        $result=Db::table('think_test')->where('id',9)->update(['name'=>'虚竹']);
        var_dump($result);
    }

    public function tabDel(){
        //删除数据 如果不写表前缀 把table改为name即可
        $result=Db::table('think_test')->where('id',9)->delete();
        var_dump($result);
    }

    public function tabSel(){
        //查询数据 如果不写表前缀 把table改为name即可
        $result=Db::table('think_test')->select();
        var_dump($result);
    }

    //使用助手函数db
    public function dbSel(){
        $db=db('test');//参数为表名
        $result=$db->select();
        var_dump($result);
        //其他操作类似
        //ps:助手函数db默认每次都会重新连接数据库,所以不推荐使用
    }

    //链式操作
    public function linkSel(){
        $list=Db::name('test')
            ->where('state',1)
            ->field(['name','state'])
            ->order('id','desc')
            ->limit(10)
            ->select();
        var_dump($list);
        //ps:链式操作select() 要在最后 其他条件顺序无所谓
        //更多方法请查询手册
    }

 数据库操作之模型

<?php
namespace appindexcontroller;
use appindexmodelUser as UserModel;

class User
{
    //==========================模型==========================
    /*模型是一种对象关系映射简称ORM,一般来说每个数据表会和一个模型对应
    ,模型不是简单的CURD操作,那种用Db类即可,模型的Db类的区别在于,模型
    查询返回的是对象,Db查询返回的是数组,模型是比Db类更高级的数据封装
    */

    //插入数据属性
    public function add1(){
        $user = new UserModel();
        $user->name = '郭靖';
        $user->email = 'guojing@qq.com';
        $user->birthday = strtotime('2000-1-1');
        if($user->save()){
            return '插入成功';
        }else{
            return '插入失败';
        }
    }

    //插入数据数组
    public function add2(){
        $user['name'] = '黄蓉';
        $user['email'] = 'huangrong@qq.com';
        $user['birthday'] = strtotime('2003-1-1');
        if(UserModel::create($user)){
            return '插入成功';
        }else{
            return '插入失败';
        }
    }

    //插入数据多条
    public function addList(){
        $user = new UserModel();
        $list = [
            ['name'=>'张三','email'=>'zhangsan@qq.com','birthday'=>strtotime('2000-1-1')],
            ['name'=>'李四','email'=>'lishi@qq.com','birthday'=>strtotime('2005-1-1')]
        ];
        if($user->saveAll($list)){
            return '插入成功';
        }else{
            return '插入失败';
        }
    }

    //更新数据 查找并更新
    public function upd1(){
        $user = UserModel::get(1);//参数为id
        // var_dump($user);
        $user->name = '刘德华';
        $user->email = 'liudehua@qq.com';
        if($user->save()){
            return '更新成功';
        }else{
            return '更新失败';
        }
    }

    //更新数据 直接更新
    public function upd2(){
        $user = new UserModel();
        $user -> save(['name'=>'郭富城','email'=>'guofucheng@qq.com'],['id'=>1]);
    }

    //更新数据 多条
    public function upd3(){
        $user = new UserModel();
        $list=[
            ['id'=>1,'name'=>'张三丰','email'=>'zsf@qq.com'],
            ['id'=>2,'name'=>'欧阳锋','email'=>'oyf@qq.com']
        ];
        if($user->saveAll($list)){
            return '更新成功';
        }else{
            return '更新失败';
        }
    }

    //查询数据 id
    public function select1(){
        $user = UserModel::get(1);
        echo $user->name.'<br/>';
        echo $user->email.'<br/>';
        echo $user->birthday.'<br/>';
    }

    //查询数据 数组
    public function select2(){
        $user = UserModel::get(['name'=>'张三']);
        echo $user->name.'<br/>';
        echo $user->email.'<br/>';
        echo $user->birthday.'<br/>';
    }

    //查询数据
    public function select3(){
        $user = new UserModel();
        $result = $user->where('name','张三')->find();
        echo $result->birthday;
    }

    //查询数据 多个数据
    public function selectAll(){
        $list = UserModel::all([1,2,3]);
        foreach ($list as $key => $value) {
            echo $value->name.'<br/>';
            echo $value->email.'<br/>';
            echo $value->birthday.'<br/>';
        }
    }
}
原文地址:https://www.cnblogs.com/wordblog/p/10432820.html