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

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

namespace app\index\controller;
use think\Controller;
use think\Db;
 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 app\index\mode\User这种就是单个引用,而use think\Loader则是多个模型引用,这种方法一般是控制用到多个模型的调用。

//定义模型
<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
  #命令tp_user->user.php

}
//控制器中使用模型
namespace app\index\controller;
use think\Controller;
use think\Db;
use app\index\model\User;//调用模型
// use think\Loader;//应用于多个模型调用
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.模型数据操作方法:

//控制器中使用模型
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller{
 //获取一条数据
  public function index(){
    //user::get方法获取id=1获取一条数据
    $res=User::get(function($query){
    $query->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","<","4")
     ->field("id,email");
     });
    foreach($res as $val){
    dump($val->toArray()); //打印出多条一维数组
    }
    //select函数方法
     $res=User::where("id","<","4")
     ->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);
     
  }
}