本文主要是介绍链式写法php,ThinkPHP框架SQL操纵链式写法道理(浅显易懂)_PHP开发框架教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下面由
thinkphp框架教程栏目给人人引见ThinkPHP框架SQL操纵链式写法道理,愿望对须要的朋侪有所协助!
弁言
人人假如有口试频频不难发明,虽然国产的TP一向被人诟病。然则涓滴不能影响它在宽大企业中的开发遭到喜爱,壮大的社区,暴力有用细致的中文手册。有一个处所置信人人都不生疏,就是他的链式写法,链式写法的肯定程度上简化了SQL工作量。OK,是怎样完成的,那我们从面向对象入手,剖析链式写法的完成道理。
以下语句
$User->limit(10)->where('status=1')->select();
代码
我们晓得,面向对象的要领,能够返回多种数据范例,固然,也能够返回对象本身,所以我们能够应用这个特征来完成
class Test{
private $var = "";
public function Func(){
$this->var = "Var is change";
return $this;
}
}
$obj = new Test();
var_dump($obj);
var_dump($obj->Func());
打印出来的效果:
object(Test)[1]
private 'var' => string '' (length=0)
object(Test)[1]
private 'var' => string 'Var is change' (length=13)
不难发明:我们私有变量 发 生 了 改 变 。 也 就 是 说 , 我 们 obj->Func(),实行后,返回了一个带着$var = "Var is change"的对象。
$User->limit(10)->where('status=1')->select();
那末这个语句就不难理解了。 要领实行后,通报对象给下个要领,以此类推。
简朴的Select()完成
class UserModel{
private $field ="*";
private $tableName ="";
private $where ="";
private $order ="";
private $limit ="";
function field($field){
$this->field = $field;
return $this;
}
function table($tableName){
$this->table = $tableName;
return $this;
}
function order($order){
$this->order = "ORDER BY ".$order;
return $this;
}
function where($where){
$this->where = "WHERE ".$where;
return $this;
}
function limit($index, $limit = 0){
$this->limit = "LIMIT ".$index;
if($limit){
$this->limit.= ",{$limit}";
}
return $this;
}
function select(){
if(empty($this->tableName)){
$this->tableName = str_replace("Model", "", __CLASS__);//假如表名不指定,则猎取类名
}
$selectSql ="SELECT {$this->field}
FROM `{$this->tableName}`
{$this->where}
{$this->order}
{$this->limit}";
//组织SQL语句模版串
echo $selectSql;
//return mysql_query($selectSql); 实行拼接后的SQL语句
}
}
$user = new UserModel();
$user->where("`user` = 1")->order("`user` DESC")->limit(5)->select();?>
总结
思绪也许就是经由过程链式操纵要领,给SQL语句的各个前提赋值,然后到最后一步一致处置惩罚SQL语句。这里只是简朴地完成下道理,故意的同砚能够对要领参数多种范例推断,越发天真地赋前提。比方where要领能够传数组。然后也能够依照此思绪,做比方INSERT(),UPDATE(),DELETE()等等。这里只是举一反三,假如要越发深切相识链式写法,也能够看TP源码。
以上就是ThinkPHP框架SQL操纵链式写法道理(浅显易懂)的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0
这篇关于链式写法php,ThinkPHP框架SQL操纵链式写法道理(浅显易懂)_PHP开发框架教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!