随着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); } }