借助PHP5语言的特性,ThinkPHP实现了动态查询。该查询方式针对数据表的字段进行查询。例如,User对象拥有id,name,email,address 等属性,那么我们就可以使用下面的查询方法来直接根据某个属性来查询符号条件的记录。
$user = $User->getByName('liu21st');
$user = $User->getByEmail('liu21st@gmail.com');
- $user = $User->getByAddress('中国深圳');
ThinkPHP还提供了另外一种动态查询方式,就是获取符合条件的前N条记录
例如,我们需要获取当前用户中积分大于0,积分最高的前5位用户
$User->top5('score>0','*','score desc');
$Master->top10('','*','visit desc');
ThinkPHP支持原生的SQL查询,在某些特殊的情况下可以满足应用的需要。
SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理,所以永远是返回的数据集对象或者惰性数据查询对象。而且可以支持查询缓存、延迟加载和事务锁(悲观锁)。
SQL查询使用query方法
$list = $User->query('select id,name from think_user');