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 相关文章推荐
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
zend framework中使用memcache的方法
Mar 04 PHP
详解PHP归并排序的实现
Oct 18 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP解决中文乱码
Apr 28 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 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
PHP5中MVC结构学习
2006/10/09 PHP
提升PHP执行速度全攻略(上)
2006/10/09 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
商务经理岗位职责
2014/07/30 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
现场施工员岗位职责
2015/04/11 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang