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 db类库进行数据库操作
Mar 19 PHP
将数组写入txt文件 var_export
Apr 21 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
php实现计数器方法小结
Jan 05 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php给图片加文字水印
2015/07/31 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
详解node中创建服务进程
2017/05/09 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python 异常处理实例详解
2014/03/12 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python和c语言的主要区别总结
2019/07/07 Python
Python sep参数使用方法详解
2020/02/12 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
详解Python 函数参数的拆解
2020/09/02 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
杠杆的科学教学反思
2014/01/10 职场文书
市场营销策划方案
2014/06/11 职场文书
党员转正党支部意见
2015/06/02 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
解析redis hash应用场景和常用命令
2021/08/04 Redis