ThinkPHP学习-5: ThinkPHP中数据库查询的连贯操作

1. 连贯操作简介

连贯操作是指前一次操作返回的是数据库对象本身,因此,可以连续对操作的结果进行下一次操作。例如,查找user数据库中id为1,2,3的按照时间倒叙排列的前两位。

var_dump($user->where('id in (1,2,3)')->order('date DESC')->limit(2)->select()); //SELECT * FROM `tp_user` WHERE ( id in (1,2,3) ) ORDER BY date DESC LIMIT 2

1.1采用数组方式连贯操作

在select语句中,采用数组来定义连贯操作方式。

var_dump($user->select(array('where'=>'id in (1,2,3)','limit'=>'2','order'=>'date DESC')));  //SELECT * FROM `tp_user` WHERE id in (1,2,3) ORDER BY date DESC LIMIT 2

采用数组连贯操作时,可以进行嵌套,例如:

var_dump($user->select(array('where'=>array('id'=>array('neq',1)),'limit'=>'2','order'=>'date DESC')));  //SELECT * FROM `tp_user` WHERE `id` <> 1 ORDER BY date DESC LIMIT 2

从php角度来说,array中可放置多个元素,其中一个元素是:'where'=>array('id'=>array('neq',1)), 这个元素中包括Key: where, value: array('id'=>array('neq',1),而这个value中又包括了一个或者多个key和value。

1.2CURD操作

采用find进行查找

var_dump($user->where('id in (1,2,3)')->find());

采用delete命令

var_dump($user->where('id in (1)')->delete()); //DELETE FROM `tp_user` WHERE ( id in (1) )

2. 常用连贯方法介绍

2.1 where查询

where中可以采用字符串方式查询

//where的字符串查询法
        var_dump ($user->where('id=2')->select());  //SELECT * FROM `tp_user` WHERE ( id=2 )

也可以采用索引数组查询

//where的索引数组查询法
        $map['id'] = array('gt',2); 
        var_dump ($user->where($map)->select());

2.2 order命令

//var_dump ($user->order('id desc')->select());   //按照id倒序
        //var_dump ($user->order(array('id'=>'DESC'))->select());     //索引数组的方法

2.3 field

2.4 limit

2.5 page

2.6 table

2.7 alias

2.8 group

2.9 having

2.10 comment

2.11 join

2.12 union

2.13 distinct

2.14 cache

3. Scope

你可能感兴趣的:(ThinkPHP学习-5: ThinkPHP中数据库查询的连贯操作)