zoukankan      html  css  js  c++  java
  • 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/>';
            }
        }
    }
  • 相关阅读:
    iot 表索引dump《2》
    heap表和iot表排序规则不同
    Cannot complete the install because one or more required items could not be found.
    iot表输出按主键列排序,heap表不是
    iot 表主键存放所有数据,且按数据插入顺序排序
    iot表和heap表排序规则不同
    org.eclipse.graphiti.ui.editor.DiagramEditorInput.
    Oracle 排序规则
    perl 异步超时 打印错误
    14.6.3 Grouping DML Operations with Transactions 组DML操作
  • 原文地址:https://www.cnblogs.com/wordblog/p/10432820.html
Copyright © 2011-2022 走看看