yii的CURD(创建、修改、读取、删除)操作

一、查询数据集合

1、$admin=Admin::model()->findAll($condition,$params);该方法是根据一个 条件查询一个集合,如: findAll(‘username=:name’,array(‘:name’=>$username));

2、$admin=Admin::model()->findAllByPk($postIDs,$condition,$params);

findAllByPk($id,’name like ‘:name’ and age=:age’,array(‘:name’=>$name,’age’=>$age)); 该方法是根据主键查询一个集合,可以使用多个主键,如: findAllByPk(array(1,2));

3、$admin=Admin::model()-> findAllByAttributes($attributes,$condition,$params); 该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,如: findAllByAttributes(array(‘username’=>’admin’));

4、$admin=Admin::model()->findAllBySql($sql,$params); 该方法是根据SQL语句查询一个数组,如: findAllBySql(‘select *from admin whereusername=:name’,array(‘:name’=>’admin’));

二、查询对像的方法

1、$admin=Admin::model()->findByPk($postID,$condition,$params); 根据主键查询出一个对象,如:findByPk(1);

2、$row=Admin::model()->find($condition,$params); 根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据,如: find(‘username=:name’,array(‘:name’=>’admin’));

3、$admin=Admin::model()-> findByAttributes($attributes,$condition,$params); 该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,他查询的也是第一条数据,如: findByAttributes(array(‘username’=>’admin’));

4、$admin=Admin::model()->findBySql($sql,$params); 该方法是根据SQL语句查询一组数据,他查询的也是第一条数据,如: findBySql(‘select *from admin whereusername=:name’,array(‘:name’=>’admin’));

5、拼一个获得SQL的方法,在根据find查询出一个对象 $criteria=new CDbCriteria;
$criteria->select=’username’; // only select the ‘title’ column
$criteria->condition=’username=:username’;
$criteria->params=array(‘:username=>’admin’);
$post=Post::model()->find($criteria); // $params isnot needed

三、查询个数,判断查询是否有结果

1、$n=Post::model()->count($condition,$params); 该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字,如 count(‘username=:name’,array(‘:name’=>$username));

2、$n=Post::model()->countBySql($sql,$params); 该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字,如 countBySql(‘select *from admin whereusername=:name’,array(‘:name’=>’admin’));

3、$exists=Post::model()->exists($condition,$params); 该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到

四、添加的方法

$admin=newAdmin;
$admin->username=$username;
$admin->password=$password;
if($admin->save()>0){
echo ’添加成功’;
}else{
echo ’添加失败’;
}

五、修改的方法

1、Post::model()->updateAll($attributes,$condition,$params);
$count =Admin::model()->updateAll(array(‘username’=>’11111′,’password’=>’11111′),’password=:pass’,array(‘:pass’=>’1111a1′));
if($count>0){
echo ’修改成功’;
}else{
echo ’修改失败’;
}

2、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($count>0){
echo ’修改成功’;
}else{
echo ’修改失败’;
}

$pk 代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合,$condition代表条件,$params传入的值

3、Post::model()->updateCounters($counters,$condition,$params);
$count=Admin::model()->updateCounters(array(‘status’=>1),’username=:name’,array(‘:name’=>’admin’));
if($count>0){
echo ’修改成功’;
}else{
echo ’修改失败’;
}

array(‘status’=& gt;1)代表数据库中的admin表根据条件username=’admin’,查询出的所有结果status字段都自加1

六、删除的方法

1、Post::model()->deleteAll($condition,$params);
$count = Admin::model()->deleteAll(‘username=:nameandpassword=:pass’,array(‘:name’=>’admin’,':pass’=>’admin’));
$id=1,2,3
deleteAll(‘id in(‘.$id.’)');删除id为这些的数据
if($count>0){
echo ’删除成功’;
}else{
echo ’删除失败’;
}

2、Post::model()->deleteByPk($pk,$condition,$params);
$count = Admin::model()->deleteByPk(1);
$count =Admin::model()->deleteByPk(array(1,2),’username=:name’,array(‘:name’=>’admin’));
if($count>0){
echo ’删除成功’;
}else{
echo ’删除失败’;
}

时间: 2025-01-25 16:03:35

yii的CURD(创建、修改、读取、删除)操作的相关文章

JQuery EasyUI学习教程之datagrid 添加、修改、删除操作_jquery

一篇关于JQueryEasyUI学习之datagrid 添加.修改.删除 学习笔记教程有需要了解的朋友可参考本的笔记,批量删除,双击表单修改.选中行修改,增加行修改,再有就是扩展editor的方法,无需废话,直接上代码,代码中的注释写的很详细 <script type="text/javascript" charst="utf-8">var editFlag = undefined;//设置一个编辑标记 //因为layout框架指向href时,只取htm

ASP.NET MVC3 增加、修改和删除操作实例

我们再新建一个表,名字命名为"Contact",打开"AndroidDB.edmx"文件,右键选择"从数据库更新模型".这个前边已经介绍过,这里就不多说,这样在实体层就创建了"Contact"类及它的属性.接下来,我们新添加一个名为"ContactController"的控制器类,用来显示我们的留言表单并实现留言功能.我们先看看Controller中的代码,如下:  代码如下 复制代码 public cla

Sql中存储过程的定义、修改和删除操作

1.存储过程的分类 系统存储过程 本地存储过程(用户自定义) 临时存储过程(局部[#].全局[##]临时存储过程) 2.创建存储过程 --选出价格区间的商品信息 create procedure sp_goods_price @minprice float ,@maxprice float as select * from goods where price>=@minprice and price <=@maxprice go 执行存储过程: execute sp_goods_price 2

给jqGrid数据行添加修改和删除操作链接

我这里用的不是jqGrid的自带的编辑和删除操作,我已经把分页导航栏下的编辑,删除,搜索都取消掉了,就是这句$("#list1").navGrid("#pager1",{edit:false,del:false, search:false}), 然后在数据加载完成后,给每行添加了 修改和删除链接 jqGrid完成的事件是gridComplete:function(){}(可以理解为数据都准备好了), 因为从数据库获取到的json数据没有带修改和删除两项,所以在之后的

给jqGrid数据行添加修改和删除操作链接(之一)_jquery

我这里用的不是jqGrid的自带的编辑和删除操作,我已经把分页导航栏下的编辑,删除,搜索都取消掉了,就是这句$("#list1").navGrid("#pager1",{edit:false,del:false, search:false}), 然后在数据加载完成后,给每行添加了 修改和删除链接 jqGrid完成的事件是gridComplete:function(){}(可以理解为数据都准备好了), 因为从数据库获取到的json数据没有带修改和删除两项,所以在之后的

LVM的创建,修改大小,删除以及彻底卸载的操作步骤

首先解释一下几个关键词 pv: physical volume 物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建. vg:volume group卷组,就是物理卷组成的卷组合,要在物理卷基础上创建. lv:logical volume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建. 所以lvm的创建顺序就是,物理磁盘分区(也可以不分区),在物理分区上创建pv,在pv上创建vg,在vg上创建lv,然后格式化lv挂载使用 ok,下面具体来操作一下逻辑卷的创建以及空间扩容和删除 我们使用

(ASP.NET)修改和删除DataGrid行——数据库访问

asp.net|datagrid|访问|数据|数据库 (ASP.NET)修改和删除DataGrid行--数据库访问 本程序涉及到数据库的添加,修改和删除操作. 懒得写了,把界面贴出来,照着界面画就可以了.本例数据库:SqlServer2000附带的pubs数据库,看一下连接字符串就很清楚了.如果要在本机器上运行,把uid和pwd改成你自己SQL登陆用户名和密码. 创建一个WEB页面,命名为:Add.aspx. 界面设计如图: Add.aspx代码: <%@ Page language="c

【java开发系列】—— JDOM创建、修改、删除、读取XML文件

有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧. JDOM下载地址 创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中. 2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件. 主要使用的函数: Element.setAttribute 为元素添加信息 Elemen

MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)_MsSql

前言: 有时候,一个数据库有多个帐号,包括数据库管理员,开发人员,运维支撑人员等,可能有很多帐号都有比较大的权限,例如DDL操作权限(创建,修改,删除存储过程,创建,修改,删除表等),账户多了,管理起来就会相当麻烦,容易产生混乱,如果数据库管理员不监控数据库架构变更的话,就不知道谁对数据库架构做了啥改动(此处改动仅仅只DDL操作),尤其有时候,有些开发人员可能不按规章制度办事,绕过或忘了通知发布人员或DBA,直接去生产机做一些DDL操作,那么我们就需要对数据库架构某些更改的事件进行监控,如果能够

EF code first 实体类修改、添加、删除操作问题

问题描述 EF code first 实体类修改.添加.删除操作问题 EF code First 怎么来更新已存在的数据库结构? 比如:在实体类中我新添加了一个字段.修改字段名称或者类型.删除一个字段 等操作后我怎么更新到已存在的数据库对于表中去. 担心:我在持续开发中,改变了数据库的结构,如果这时候用户已经用以前的版本创建好数据库并且有了许多数据,假使我的修改只增加了一个表的一个可空列.而为此我只能重新创建数据库.请问有没有别的办法,能够把新的数据库结构在不损伤数据的情况下更新到部署好的环境中