• 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/>';
            }
        }
    }
  • 相关阅读:
    使用pca/lda降维
    交叉验证
    各模型选择及工作流程
    岭回归
    线性回归
    K-临近算法(KNN)
    django中的中间件
    django中form组件
    javascript中的词法分析
    Django之Model操作
  • 原文地址:https://www.cnblogs.com/wordblog/p/10432820.html
Copyright © 2020-2023  润新知