不言不语

您现在的位置是: 首页 >  PHP  >  ThinkPHP

ThinkPHP

Thinkphp5模型和Db数据操作要点分析

2017-12-14ThinkPHP
随着thinPHP5的发布,tp框架也是有一个非常大的变化,较以往的3版本还是有很多地方不一样的。现在小编就要数据查询方面,写个个人笔记记录下thinPHP5数据查询的使用方法。

随着thinPHP5的发布,tp框架也是有一个非常大的变化,较以往的3版本还是有很多地方不一样的。现在小编就要数据查询方面,写个个人笔记记录下thinPHP5数据查询的使用方法。

1.DB数据操作方法:使用Db时记得引用use thinkDb;

namespace appindexcontroller;
use thinkController;
use thinkDb;
 class Index extends Controller{
  public function index(){
  //数据库查询操作
    //返回一条记录并且是一维数组
    $res=Db::table('tp_article')->where(['aid'=>17])->select();
    //返回一条记录并且是一维数组
    $res=Db::table('tp_article')->find();
    //返回一条记录,并且返回某个字段记录值
    $res=Db::table('tp_article')->value('title');

  //数据库添加操作
    $db=Db::name('link');
    $res=$db->insert([
      'lname'=>'不言不语',
      'url'=>'http://www.100txy.com',
      'is_show'=>1
    ]);

  //数据库更新操作
    $db=Db::name('link');
    $res=$db->where([
      'lid'=>5
      ])->update([
      'lname'=>'雷小天',
    ]);
    
    //生成sql语句
    // $db=Db::name('link');
    // $res=$db->where([
    //   'lid'=>5
    //   ])->buildSql();
    // dump($res);
    }
   }

2.模型引用方法:在控制器中使用模型时,记得先要定义模型,再引用模型。引用模型可以是单个,也可以是多个引用方法。如:use appindexmodeUser这种就是单个引用,而use thinkLoader则是多个模型引用,这种方法一般是控制用到多个模型的调用。

//定义模型
user.php

}
//控制器中使用模型
namespace appindexcontroller;
use thinkController;
use thinkDb;
use appindexmodelUser;//调用模型
// use thinkLoader;//应用于多个模型调用
class Index extends Controller{
  public function index(){
    
    //下面是调用模型
    $res=User::get(1);//1,2方法推荐,get中的1是主键的值

    //2方法: $user=new User;

    //3方法:$user=Loader::model("User");

    //4方法:$user=model("User");//此助手方法可以不引用任何model
    //$res=$user->get(1);
    
    $res=$res->toArray();
    dump($res);
  }
 }

2.模型数据操作方法:

//控制器中使用模型
where("id","eq","1");
     });
     //user::where方法获取id=1获取一条数据
     $res=User::where("id",1)
      ->find();
     //根据字段获取,当然第一个闭包函数方法也是可以的
      $res=User::where("id",1)
      ->filed("id,username")
      ->find();
     
    $res=$res->toArray();
    dump($res);   
     
  }
  //获取多条数据
  public function index2(){
      //一般数组方法      
    $res=User::all("1,2,3");//可以是数组里面$res=User::all([1,2,3]);
    foreach($res as $val){
    dump($val->toArray()); //打印出多条一维数组
    }
 
    //闭包函数
     $res=User::all(function($query){
     $query->where("id","field("id,email");
     });
    foreach($res as $val){
    dump($val->toArray()); //打印出多条一维数组
    }
    //select函数方法
     $res=User::where("id","field("id,email")
     ->select();
    foreach($res as $val){
    dump($val->toArray()); //打印出多条一维数组
    }
     
  }
  //获取字段数据
  public function index3(){
    //单条字段数据
     $res=User::where("id",2)->value("email");
     //一列字段(以key->val)形式数据
     $res=User::column("id,email");
    dump($res);
     
  }
}


文章评论