• Thinkphp5.0第二篇


    查询构造器

    //插入记录
    	$result=Db::table('think_data')->insert(['name'=>'张三','status'=>1]);
    //修改数据
    			$result=Db::table('think_data')->where('id', 1)->update(['name'=>"陈国松",'status'=>0]);
    //查询数据
    $result=Db::table('think_data')->select();
    

    (貌似修改数据不能以id修改可能是id加了AUTO_INCREMENT,能不用助手函数就不用助手函数)

    链式操作

    数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作。
    使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排
    序 ,代码如下:

    Db::table('think_user')
    ->where('status',1)
    ->order('create_time')
    ->limit(10)
    ->select();
    

    这里的 where 、 order 和 limit 方法就被称之为链式操作方法,除了select方法必须放到最后一个外
    (因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等
    效:

    Db::table('think_user')
    ->order('create_time')
    ->limit(10)
    ->where('status',1)
    ->select();
    

    其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:

    Db::table('think_user')
    ->where('id',1)
    ->field('id,name,email')
    ->find();
    Db::table('think_user')
    ->where('status',1)
    ->where('id',1)
    ->delete();
    

    链式操作在完成查询后会自动清空链式操作的所有传值。简而言之,链式操作的结果不会带入后面的其它查询。

    查询数据

      $result=Db::name('data')->where('status',1)->find();
    
      $result=Db::name('data')->where('status',1)->select();
    

    find方法和select方法的区别在于find只能查到一个,而select是查询所有的。

    查询表达式

    模糊查询

          $result=Db::name('data')->where('name','like','%陈%')->select();
    

    区间查询

                $result=Db::name('data')->where('id','BETWEEN',[2,4])->select();
    

    一次性插入多条数据

                $data=[
    
         ['name'=>"凌志林",'status'=>1],
    
     	  ['name'=>"林志颖",'status'=>2],
    
                ];
    
                $result=Db::name('data')->insertALL($data);
    

    更改字段值

                $result=Db::name('data')->where('name','陈国松')->setField('name','陈松');
    

    自增加一

    $result=Db::name('data')->where('name','陈松')->setInc('status');
    

    自减

    $result=Db::name('data')->where('name','陈松')->setDec('status',2);
    

    模型

    Thinkphp5.0的模型是一种关系映射ORM的封装并且提供了简洁的ActiveRecord实现。一般来说,每个数据表会和一个"模型对应"。

    模型类返回的是当前模型对象实例,模型是比Db类更高级的数据封装,支持模型关联,模型事件。

    模型定义

    首先创建一个数据表

    然后新建如下文件及文件夹

    其中model里的User.php如下

    <?php
    namespace appindexmodel;
    use thinkModel;
    class User extends Model
    {
        
    }
    

    controller里面的User.php

    <?php
    
    namespace appindexcontroller;
    
    use appindexmodelUser as UserModel;
    
    class User{
    
        //新增一条数据的方法
    
       public function add()
    
        {
    
           echo 'hello';
    
            $user =new UserModel();
    
            $user->id=1;
    
            $user->name='陈国松';
    
            $user->email='liuyun@qq.com';
    
            $user->birthday=strtotime('1989-7-11');
    
          if( $user->save()){
    
              return '用户新增成功';
    
          }else{
              return '用户新增失败';
    
         }
    
        }
    
    }
    

    地址栏这样访问(没有弄虚拟主机的)

    http://localhost/thinkphp5.0/public/index.php/index/User/add
    

    成功的话数据库会如下

  • 相关阅读:
    Vue axios 使用记录
    Vue CLI 项目创建
    Vue中的事件修饰符。
    js 中控制打印方向横向还是纵向。
    element ui 列表中删除只能删除最后一项
    文件上传formData上传之前查看对象里的值
    GridControl_gridView 单元格内容换行(wrap)
    SqlTest(2013-07-10)
    printPreviewControl1 打印预览
    避免button处理事件过程中 点击按钮触发事件的方法
  • 原文地址:https://www.cnblogs.com/chenguosong/p/11483207.html
Copyright © 2020-2023  润新知