order("create_time")->limit(10)->select(); $User->order("create_time")->limit(10)->where("status=1")->select(); $User->where("id=1")->field("id,name,e" />
牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkPHP常用数据操作(三)连贯操作

创建时间:2017-01-02 投稿人: 浏览次数:545

简单应用举例

$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快速入门,详情请参考官方文档

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。