yii的CURD操作实例详解


Posted in PHP onDecember 04, 2014

本文实例讲述了yii的CURD操作技巧。分享给大家供大家参考。具体分析如下:

CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)操作。本文来讲讲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 '删除失败';

}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP - Html Transfer Code
Oct 09 PHP
discuz7 phpMysql操作类
Jun 21 PHP
php防攻击代码升级版
Dec 29 PHP
2014过年倒计时示例
Jan 31 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
php生成图片验证码的方法
Apr 15 PHP
PHP如何实现跨域
May 30 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 #PHP
php生成随机颜色方法汇总
Dec 03 #PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 #PHP
Yii框架中memcache用法实例
Dec 03 #PHP
yii中widget的用法
Dec 03 #PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 #PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 #PHP
You might like
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
JTrackBar水平拖动效果
2007/07/15 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
深入理解python中的atexit模块
2017/03/07 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
Pandas中resample方法详解
2019/07/02 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
财务分析个人的自荐书范文
2013/11/24 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
公司员工检讨书
2014/02/08 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
黄河绝恋观后感
2015/06/08 职场文书
青年志愿者活动感想
2015/08/07 职场文书