您的位置:首页 > 编程语言 > PHP开发

Thinkphp中的连贯操作

2016-08-01 08:06 267 查看
一般而言,连贯操作指的是在查询时能够带入其他条件来查询。

一、常用连贯操作
1.where
帮助我们设置查询条件
2.order

对结果进行排序
$arr=$m->order('id desc')->select();
$arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();
3.limit

限制结果
limit(2,5)
limit('2,5')
limit(10)//limit(0,10)
4.field

设置查询字段
field('username as name,id')
field(array('username'=>'name','id')
field('id',true) //获取除了id以外的所有字段
5.table

6.group

7.having

二、补充  
alias 用于给当前数据表定义别名 字符串 
page 用于查询分页(内部会转换成limit) 字符串和数字 
join* 用于对查询的join支持 字符串和数组 
union* 用于对查询的union支持 字符串、数组和对象 
distinct 用于查询的distinct支持 布尔值 
lock 用于数据库的锁机制 布尔值 
cache 用于查询缓存 支持多个参数(以后在缓存部分再详细描述) 
relation 用于关联查询(需要关联模型扩展支持) 字符串 
validate 用于数据自动验证 数组 
auto 用于数据自动完成 数组 
filter 用于数据过滤 字符串 
scope* 用于命名范围 字符串、数组 

三、简单实现Thinkphp中的where操作:

<?php

class Model
{
private $tabName=null;
private $sql=null;
private $where=null;
function __construct($tabName)
{
$this->tabName=$tabName;
mysql_connect('127.0.0.1','root','123456');
mysql_select_db('User');
}
function where($_where){
$this->where=$_where;
return $this;
}
function select(){
$arr=array();
$this->sql="select * from ".$this->tabName." where {$this->where}";
$result=mysql_query($this->sql);
//mysql_num_rows返回结果集的行数
if ($result && mysql_num_rows($result)>0){
while($res=mysql_fetch_assoc($result)){
$arr[]=$res;
}
}
return $arr;
}
function getSql(){
global $sql;
return $this->sql;
}
}
$m=new Model("User");
//$m2=$m->where('id>10');连贯操作的由来
//where操作返回了一个新的对象继续执行select操作。效果与Thinkphp相似,其他操作的实现类似</span>
$arr=$m->where('id>10')->select();
global $sql;
echo "<pre>";
var_dump($arr);
echo "<hr/>";
echo $m->getSql();
echo "</pre>";

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: