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

时间: 2025-01-03 22:43:47

掌握Thinkphp3.2.0----连贯操作的相关文章

关于php如何连贯操作类方法(以数据库为例)

关于php如何连贯操作类方法(以数据库为例) 1.下面是我写好的关于mysqli操作数据库的一些常用方法,大神请掠过 1 <?php 2 3 class Db 4 { 5 static private $config = [ 6 'datahost' => '', // 主机名 7 'dataname' => '', // 数据库名 8 'username' => '', // 用户名 9 'password' => '', // 用户密码 10 'charset' =>

第 39 章 ThinkPHP--SQL 连贯操作

本节课,我们将学习 ThinkPHP 模型基础类提供的连贯操作,通过连贯操作可以有效的 提供数据存取的代码清晰度和开发效率,并且支持所有的 CURD 操作. 一.连贯入门 连贯操作使用起来非常简单,比如查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两 位. //连贯操作入门 $user = M('User'); var_dump($user->where('id in (1,2,3,4)')->order('date DESC')->limit(2)->select()

php连贯操作实现

我们在使用一些框架(如ThinkPHP)编码的时候,常用到这样的代码. M('User')->where(array('id'=>1))->field('name')->select(); 这样不仅有利于编码,而且也能让人"心情愉悦"呢.好了,不多说了.让我们看看如何实现的吧? <?php //数据库操作基类[PS:主要功能连贯功能实现] class Db{ //此属性定义要实现连贯操作的方法名 public $sql = array( "fie

一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句

如题: 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句不是一条关联查询语句. 例如: $list = $db->relation(true)->where($where)->order('blogid desc')->limit($Page->firstRow.','.$Page->listRows)->select(); $sql = $db->getLastSql(); 输出的sql语句为: SELE

ThinkPHP教程_PHP框架之ThinkPHP(八)【CRUD与连贯操作】

一.CRUD ThinkPHP提供了灵活和方便的数据库操作方法,其中最基本的就是CRUD四个操作,只有掌握了最基本的CRUD操作,才能更好的运用更多实用的数据库操作方法 CRUD操作通常与连贯操作配合 1.创建操作 使用add()方法或addAll()方法 ·add()方法 可以直接传入要插入的数据,而且会在插入之前会过滤掉数据表中不存在的字段以及非法的数据类型(例如对象.数组等非标量数据).若当前表有主键自动增长并且插入记录成功的话,则返回所插入记录主键值 如果在执行add()操作之前已经创建

ThinkPHP框架模型连贯操作(八)

原文:ThinkPHP框架模型连贯操作(八) Thinkphp的连贯操作使用起来也是很灵活: *可能这里有的mysql函数没全部罗列出来,大家可以举一反三,形式雷同 一.常用连贯操作 1.where 帮助我们设置查询条件 2.order 对结果进行排序 $arr=$m->order('id desc')->select(); $arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select(); 多个字段排序 //数组形式

【转】PHP实现连贯操作

[第一种方案 __call] 我们在使用一些框架(如ThinkPHP)编码的时候,常用到这样的代码. M('User')->where(array('id'=>1))->field('name')->select(); 这样不仅有利于编码,而且也能让人"心情愉悦"呢.好了,不多说了.让我们看看如何实现的吧? <?php //数据库操作基类[PS:主要功能连贯功能实现] class Db{ //此属性定义要实现连贯操作的方法名 public $sql = a

PHP类连贯操作的实现方法

PHP中的连贯操作看起来的确很酷,也非常的方便代码的阅读,当然了必须是在OOP中用才行,在过程化的程序中,就没有必要用这种方法了.有实现这个方法的有用_CALL来实现的,而我下面写的这个例子,则不是用_call的,大家可以扩展一下吧. 下面写的这个SQL语句组合类,主要是用于学习的,如果有同学想拿去用,请再完善一下. /* * SQL语句组合实例类,始发文章web开发笔记 * www.chhua.com * 学习用,非专业类 * */ class sql{ private $sql=array(

thinkPHP 连贯操作

在手册中的位置为 模型->连贯操作 一.常用连贯操作    1.where        帮助我们设置查询条件    2.order            对结果进行排序        $arr=$m->order('id desc')->select();        $arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();    3.limit            限制结果        lim