Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第1页
Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第2页
Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第3页
Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第4页
Yii数据库操作增删改查-[增加查询更新删除 AR模式].docx_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论