![Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/21/a30f7b01-c8a9-4f6d-af07-731ded3bb68b/a30f7b01-c8a9-4f6d-af07-731ded3bb68b1.gif)
![Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/21/a30f7b01-c8a9-4f6d-af07-731ded3bb68b/a30f7b01-c8a9-4f6d-af07-731ded3bb68b2.gif)
![Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/21/a30f7b01-c8a9-4f6d-af07-731ded3bb68b/a30f7b01-c8a9-4f6d-af07-731ded3bb68b3.gif)
![Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/21/a30f7b01-c8a9-4f6d-af07-731ded3bb68b/a30f7b01-c8a9-4f6d-af07-731ded3bb68b4.gif)
![Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-3/21/a30f7b01-c8a9-4f6d-af07-731ded3bb68b/a30f7b01-c8a9-4f6d-af07-731ded3bb68b5.gif)
已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出。灰常感谢!一、查询数据集合123456789101112131415161718/1.该方法是根据一个条件查询一个集合$admin=Admin:model()-findAll($condition,$params);$admin=Admin:model()-findAll(username=:name,array(:name=$username);$infoArr= NewsList:model()-findAll(status = 1 ORDER BY id DESC limit 10 );/2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键)$admin=Admin:model()-findAllByPk($postIDs,$condition,$params);$admin=Admin:model()-findAllByPk($id,name like :name and age=:age,array(:name=$name,age=$age);$admin=Admin:model()-findAllByPk(array(1,2);/3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面)$admin=Admin:model()-findAllByAttributes($attributes,$condition,$params);$admin=Admin:model()-findAllByAttributes(array(username=admin);/4.findAllBySql (该方法是根据SQL语句查询一个数组)$admin=Admin:model()-findAllBySql($sql,$params);$admin=Admin:model()-findAllBySql(select * from admin where username like :name,array(:name=%ad%);二、查询对象的方法12345678910111213141516171819202122232425262728293031323334353637383940414243444546/根据主键查询出一个对象,如:findByPk(1);$admin=Admin:model()-findByPk($postID,$condition,$params);$admin=Admin:model()-findByPk(1);/根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据$row=Admin:model()-find($condition,$params);$row=Admin:model()-find(username=:name,array(:name=admin);/该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据$admin=Admin:model()-findByAttributes($attributes,$condition,$params);$admin=Admin:model()-findByAttributes(array(username=admin);/该方法是根据SQL语句查询一组数据,他查询的也是第一条数据$admin=Admin:model()-findBySql($sql,$params);$admin=Admin:model()-findBySql(select * from admin where username=:name,array(:name=admin);/拼一个获得SQL的方法,在根据find查询出一个对象$criteria=newCDbCriteria;$criteria-select=username;/ only select the title column$criteria-condition=username=:username;/请注意,这是一个查询的条件,且只有一个查询条件.多条件用addCondition$criteria-params=array(:username=admin);$criteria-order =id DESC;$criteria-limit =3;$post=Post:model()-find($criteria);/ $params isnot needed/多条件查询的语句$criteria=newCDbCriteria;$criteria-addCondition(id=1);/查询条件,即where id = 1$criteria-addInCondition(id,array(1,2,3,4,5);/代表where id IN (1,2,3,4,5,);$criteria-addNotInCondition(id,array(1,2,3,4,5);/与上面正好相法,是NOT IN$criteria-addCondition(id=1,OR);/这是OR条件,多个条件的时候,该条件是OR而非AND$criteria-addSearchCondition(name,分类);/搜索条件,其实代表了。where name like %分类%$criteria-addBetweenCondition(id, 1, 4);/between 1 and 4$criteria-compare(id, 1);/这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition.$criteria-compare(id,array(1,2,3);/即如果第二个参数是数组就会调用addInCondition$criteria-select =id,parentid,name;/代表了要查询的字段,默认select=*;$criteria-join =xxx;/连接表$criteria-with =xxx;/调用relations$criteria-limit = 10;/取1条数据,如果小于0,则不作处理$criteria-offset = 1;/两条合并起来,则表示 limit 10 offset 1,或者代表了。limit 1,10$criteria-order =xxx DESC,XXX ASC;/排序条件$criteria-group =group 条件;$criteria-having =having 条件 ;$criteria-distinct = FALSE;/是否唯一查询三、查询个数,判断查询是否有结果1234567891011/该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字$n=Post:model()-count($condition,$params);$n=Post:model()-count(username=:name,array(:name=$username);/该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字$n=Post:model()-countBySql($sql,$params);$n=Post:model()-countBySql(select * from admin where username=:name,array(:name=admin);/该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到$exists=Post:model()-exists($condition,$params);$exists=Post:model()-exists(name=:name,array(:name=$username);四、添加的方法1234$admin=newAdmin;$admin-username =$username;$admin-password =$password;if($admin-save() 0)echo添加成功; elseecho添加失败; 五、修改的方法12345678910111213141516Post:model()-updateAll($attributes,$condition,$params);$count=Admin:model()-updateAll(array(username=11111,password=11111),password=:pass,array(:pass=1111a1);if($count 0)echo修改成功; elseecho修改失败; $rt= PostList:model()-updateAll(array(status=1),staff_id=:staff AND host_id=:host,array(:staff=$staff_id,:host=$host_id);/$pk主键,可以是一个也可以是一个集合,$attributes是要修改的字段的集合,$condition条件,$params传入的值Post:model()-updateByPk($pk,$attributes,$condition,$params);$count=Admin:model()-updateByPk(1,array(username=admin,password=admin);$count=Admin:model()-updateByPk(array(1,2),array(username=admin,password=admin),username=:name,array(:name=admin);if($count0)echo修改成功; elseecho修改失败; Post:model()-updateCounters($counters,$condition,$params);$count=Admin:model()-updateCounters(array(status=1),username=:name,array(:name=admin);if($count 0)echo修改成功; elseecho修改失败; /array(status=1)代表数据库中的admin表根据条件username=admin,查询出的所有结果status字段都自加1六、删除的方法1234567891011/deleteAllPost:model()-deleteAll($condition,$params);$count= Admin:model()-deleteAll(username=:name and password=:pass,array(:name=admin,:pass=admin);$count= Admin:model()-deleteAll(id in(1,2,3);/删除id为这些的数据if($count0)echo删除成功; elseecho删除失败; /deleteByPkPost:model()-deleteByPk($pk,$condition,$params);$count= Admin:model()-deleteByPk(1);$count=Admin:model()-deleteByPk(array(1,2),username=:name,array(:name=admin);if($count0)echo删除成功; elseecho删除失败; 七、更多方法12345678910111213141516171819/createCommand(执行原生的SQL语句)$sql=SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id;$rows=Yii:app()-db-createCommand($sql)-query();foreach($rowsas$k=$v)echo$vadd_time;/事务的基本结构(多表更新插入操作请使用事务处理)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省2025年吉林白山市事业单位公开招聘基层工作人员(98人)笔试历年参考题库附带答案详解
- 北京市2025商务部投资促进事务局招聘13人笔试历年参考题库附带答案详解
- 八公山区2025安徽淮南八公山区老年学校(大学)工作人员特设岗位招聘1人笔试历年参考题库附带答案详解
- 乌当区2025贵州乌当区农业农村局招聘驻嘉旺屠宰场动物检疫协检人员笔试历年参考题库附带答案详解
- 黔西南布依族苗族自治州2025贵州黔西南州贞丰县事业单位引进高层次人才和急需紧缺人才25人笔试历年参考题库附带答案详解
- 2025浙江温州市鹿通文化旅游有限公司招聘11人笔试参考题库附带答案详解
- 2025年河北石家庄市供热管理集团有限公司劳务派遣制人员14人笔试参考题库附带答案详解
- 2025年广西盐业集团公开招聘18人笔试参考题库附带答案详解
- 2025年国网青海省电力公司高校毕业生招聘(第二批)调剂笔试参考题库附带答案详解
- 2025年中国铁路南宁局集团有限公司招聘高校毕业生73人三(本科及以上学历)笔试参考题库附带答案详解
- 锂电池安全知识培训课件
- 大疆80分钟在线测评题
- 碳排放管理员 (碳排放核查员) 理论知识考核要素细目表五级
- 机场运行指挥中心机坪塔台管制室运行手册
- YB/T 6328-2024 冶金工业建构筑物安全运维技术规范(正式版)
- 设备管理的风险评估和应对策略
- 研学导师培训课件模板
- 人教版小学数学五年级上册 4 可能性 全国获奖
- 人教版小学数学四年级上册《第二单元练习题》
- 养殖场走访方案
- 上海西门妇孺医院研究(1884-1952)
评论
0/150
提交评论