掌握Thinkphp3.2.0----连贯操作

Posted GOFighting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握Thinkphp3.2.0----连贯操作相关的知识,希望对你有一定的参考价值。

其实在TP中,说起来语句中的各个关键词都被封装成了函数,将各个由关键词演变来的函数连起来就是所谓的连贯操作。只要注意各个函数直接参数传递的区别就可以了。

再者,不是所有的函数都可以进行连贯操作!!!比如select()

支持连贯操作的函数集合

不用特意去记,代码是敲出来的,只要用的多了就没有问题了

示例:

1 //数组操作
2 $user = M(\'User\');
3 var_dump($user->select( array(\'where\'=>\'id in (1,2,3,4)\', \'limit\'=>\'2\',//不是连贯操作
4 \'order\'=>\'date DESC\')));
5 //CURD处理,CURD会在专门章节讲解
6 $user = M(\'User\');
7 var_dump($user->where(\'id=1\')->find());
8 var_dump($user->where(\'id=7\')->delete());

 详细介绍:

1.where,前边已经讲过,参照前边

2.order 

 1 //倒序
 2 $user = M(\'User\');
 3 $map[\'id\'] =  array(\'eq\', 1);
 4 var_dump($user->order(\'id desc\')->select()); //正序默认或 ASC
 5 //第二排序
 6 var_dump($user->order(\'id desc,email desc\')->select());
 7 PS:先按 id 倒序,再按 email 倒序
 8 //数组形式防止字段和mysql关键字冲突
 9 $user = M(\'User\');
10 $map[\'id\'] =  array(\'eq\', 1);
11 var_dump($user->order( array(\'id\'=>\'DESC\'))->select());

 

3.field

 1 //只显示id和user两个字段
 2 $user = M(\'User\');
 3 var_dump($user->field(\'id, user\')->select());
 4 //使用SQL函数和别名
 5 $user = M(\'User\');
 6 var_dump($user->field(\'SUM(id) as count, user\')->select());
 7 //使用数组参数结合SQL函数
 8 $user = M(\'User\');
 9 var_dump($user->field( array(\'id\',\'LEFT(user,3)\'=>\'left_user\'))->sele
10 ct());
11 //获取所有字段
12 $user = M(\'User\');
13 var_dump($user->field()->select()); //可以传入*号,或者省略方法
14 //用于写入
15 $user = M(\'User\');
16 $user->field(\'user,email\')->create(); //CURD 将在专门的章节学习

 

4.limit

1 $user = M(\'User\');
2 var_dump($user->limit(2)->select());
3 //分页查询
4 $user = M(\'User\');
5 var_dump($user->limit(0,2)->select()); //2,2、,4,2

 

5.page

1 //page分页
2 $user = M(\'User\');
3 var_dump($user->page(1,2)->select()); //2,2、3,2

 

6.table

 1 //切换数据表
 2 $user = M(\'User\');
 3 var_dump($user->table(\'think_info\')->select());
 4 //获取简化表名
 5 $user = M(\'User\');
 6 var_dump($user->table(\'__USER__\')->select()); //__INFO__尚可
 7 //多表查询
 8 $user = M(\'User\');
 9 var_dump($user->field(\'a.id,b.id\')->table(\'__USER__ a,__INFO__
10 b\')->select());
11 //多表查询,使用数组形式避免关键字冲突
12 $user = M(\'User\');
13 var_dump($user->field(\'a.id,b.id\')->table( array(\'think_user\'=>\'a\',
14 \'think_info\'=>\'b\'))->select());

 

7.alias

1 alias 用于设置数据表别名
2 //设置别名
3 $user = M(\'User\');
4 var_dump($user->alias(\'a\')->select());

 

8.group

1 //group 方法通常用于对结合函数统计的结果集分组。
2 //分组统计
3 $user = M(\'User\');
4 var_dump($user->field(\'user,max(id)\')->group(\'id\')->select());

 

9.having

1 //having 方法一般用于配合 group 方法完成从分组的结果中再筛选数据。
2 //分组统计结合having
3 $user = M(\'User\');
4 var_dump($user->field(\'user,max(id)\')->group(\'id\')->having(\'id>2\')->
5 select());

 

10.comment

1 //comment 方法用于对 SQL 语句进行注释
2 //SQL注释
3 $user = M(\'User\');
4 var_dump($user->comment(\'所有用户\')->select());

 

11.join

1 //join 方法用于多表的连接查询。
2 //JOIN多表关联,默认是INNER JOIN
3 $user = M(\'User\');
4 var_dump($user->join(\'think_user ON think_info.id =
5 think_user.id\')->select()); //__USER__和__INFO__代替
6 //RIGHT、LEFT、FULL
7 var_dump($user->join(\'think_user ON think_info.id =
8 think_user.id\',\'RIGHT\')->select());

 

12.uinon

1 //union 方法用于合并多个 SELECT 的结果集
2 //合并多个SELECT结果集
3 $user = M(\'User\');
4 var_dump($user->union("SELECT * FROM think_info")->select());

 

13.distinct

1 //distinct 方法用于返回唯一不同的值
2 //返回不重复的列
3 $user = M(\'User\');
4 var_dump($user->distinct( true)->field(\'user\')->select());

 

14.cache

1 //cache 用于查询缓存操作
2 //查询缓存,第二次读取缓存内容
3 $user = M(\'User\');
4 var_dump($user->cache( true)->select());

 

15.命名范围

 

以上是关于掌握Thinkphp3.2.0----连贯操作的主要内容,如果未能解决你的问题,请参考以下文章

掌握Thinkphp3.2.0----视图

掌握Thinkphp3.2.0----SQL查询

掌握Thinkphp3.2.0----自动完成

掌握Thinkphp3.2.0----内置标签

掌握Thinkphp3.2.0----标签库

ThinkPHP教程_PHP框架之ThinkPHPCRUD与连贯操作