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);
}
} 很赞哦! ()
