掌握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.命名范围