博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十七、AR数据库操作CRUD之read查询
阅读量:5740 次
发布时间:2019-06-18

本文共 1254 字,大约阅读时间需要 4 分钟。

  hot3.png

和DAO查询一样,AR查询我们也分几种情况来讨论
查询单条数据
对于单条数据的查询,AR为我们封装了好几种,这里我只介绍两种我认为常用的
对于主键查询或者是包含主键查询的查询,我们可以使用findByPk方法,该方法在修改和删除中使用过,此处不再赘述
对于不包含主键的查询,我们可以使用find($condition,$param)方法

比如,我们想查询一个名叫 ‘学友’的用户

public function actionFind(){        $model = User::model()->find('username=:username',array(':username'=>'学友'));        dump($model->attributes);    }
打印结果如下图:

对于多条数据的查询,我们可以使用findAll($condition,$params)
比如,我们想查询城市id在1和2里面的用户
public function actionFindall(){        $models = User::model()->findAll('city_id in (1,2)');        dump(count($models));    }
对于多条数据的查询,我们有更好的替代方法,可以使用‘查询生成器对象CDbCriteria结合FindAll方法来使用’
比如,我们想查询id大于等于1,并且小于5,城市id在1-3之间,名字里面带一个‘鑫’字的用户信息
public function actionCriteria(){        $criteria = new CDbCriteria();        //增加一个查询条件        $criteria->addCondition('id>=1');        $criteria->addCondition('id<:id');//可以使用占位符的方式        $criteria->params[':id'] = 5;        //in查询        $criteria->addInCondition('city_id', array(1,2));        //like查询        $criteria->addSearchCondition('username', '鑫');        $models = User::model()->findAll($criteria);        dump($models);    }
打印结果如下图:查询出来2条符合条件的信息
查询器criteria还封装了很多查询中需要使用到的方法,比如select,limit,offset,join等方法,使用方法与addCondition类似,这里就不一一介绍了

转载于:https://my.oschina.net/lonxom/blog/168253

你可能感兴趣的文章
Open DJ备份与恢复方案
查看>>
Oracle创建用户设置权限
查看>>
当大数据遭遇深不可测的人性
查看>>
报错:tr was not declared in this scope
查看>>
Java反射
查看>>
批量扫描互联网无线路由设备telnet,并获取WIFI密码
查看>>
ubuntu中eclipse无法识别android手机问题
查看>>
HDU 4978 A simple probability problem
查看>>
windows2003 IIS6.0右键属性没有asp.net选项卡的解决办法
查看>>
MongoDB JAVA API Filters
查看>>
用spring-data-redis实现类似twitter的网站(转)
查看>>
Unity3D 之武器系统冷却功能的实现方式
查看>>
安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决
查看>>
Oracle 表空间与数据文件
查看>>
关于拉格朗日乘子法和KKT条件
查看>>
Godray
查看>>
音视频编解码开发经验2
查看>>
Visual Studio vs软件下载 vax Visual Assist X VAssistX
查看>>
virtualenv 和 virtualenvwrapper 实践
查看>>
点击空白处 关闭气泡的问题
查看>>