简单应用举例
$User->where('status=1')->order('create_time')->limit(10)->select();
$User->order('create_time')->limit(10)->where('status=1')->select();
$User->where('id=1')->field('id,name,email')->find();
$User->where('status=1 and id=1')->delete();
//连贯操作的方法调用顺序没有先后,但是要确保select,find,delete放在最后。
//连贯操作仅在当次查询或者操作有效,完成后会自动清空连贯操作的所有传值
//简而言之,连贯操作的结果不会带入以后的查询
//支持的列表,略
用法示例
1 table
//注:需要数据表的全名
$Model->Table('think_user user')->where('status>1')->select();
$Model->Table('db_name.think_user user')->where('status>1')->select();
$Model->Table(array('think_user'=>'user','think_group'=>'group'))->where('status>1')->select();
2 data
//可以用于新增或者保存数据之前的数据对象赋值
(1)$Model->data($data)->add(); 新增
(2)$Model->data($data)->where('id=3')->save(); 更新
//备注:如果不调用data方法,则会取当前的数据对象或者传入add和save的数据。
//也可以不调用data方法直接使用Model->add和model->save,但是这种情况下,参数只能使用数组
3 field
// 用于定义要查询的字段 field($field,$except=false)
$Model->field('id,nickname as name')->select();
$Model->field(array('id','nickname'=>'name'))->select();
field('')和field('*')等效,表示默认选择所有字段
field(true)则表示显式选择所有字段//此为tp推荐的方式
4 order
order('id desc')
order('status desc,id asc')
order(array('status'=>'desc','id'))//id不指示顺序,表示按照数据库默认规则
5 limit
//方式limit('offset,length')
limit('1,10')等效于limit(1,10) //offset=1, ;length=10
limit('10')等效于limit('0,10')//前10个
6 page
//方式 Page('page[,listRows]') page表示当前的页数,listRows表示每页显示的记录数
Page('2,10') 表示每页显示10条记录的情况下面,获取第2页的数据.也可写成Page(2,10)
listRow如果不写的话,会读取limit('length') 的值,例如:
limit(25)->page(3); 表示每页显示25条记录的情况下面,获取第3页的数据
//如果limit也没有设置的话,则默认为每页显示20条记录。
7 group
group('user_id')
8 having
having('user_id>0')
9 join
$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select();//默认inner join
$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select();//指定join的类型right join
10 union
//union($union,$all=false) $all=true.表示使用union all操作
$Model->field('name')
->table('think_user_0')
->union('SELECT name FROM think_user_1')
->union('SELECT name FROM think_user_2')
->select();
数组用法
$Model->field('name')
->table('think_user_0')
->union(array('field'=>'name','table'=>'think_user_1'))
->union(array('field'=>'name','table'=>'think_user_2'))
->select();
11 distinct
$Model->Distinct(true)->field('name')->select();
12 lock
//lock($lock) 参数必须。用于查询或写入时的锁定
lock(true)
13 validate
待补充
14 auto
待补充
15 scope
参考官方手册
16 filter
//filter($filter) ,参数必须。用于数据的安全过滤
$Model->data($data)->filter('strip_tags')->add();
//filter方法一般用于写入和更新操作,用于对数据对象的安全过滤
$Model->data($data)->filter('strip_tags')->add();//暂时不支持多个方法的过滤
以上内容大部分摘自thinkphp3.2.3快速入门,详情请参考官方文档