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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
随机广告显示(PHP函数)
Oct 09 PHP
解析php防止form重复提交的方法
Jul 01 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
php实现简易聊天室应用代码
Sep 23 PHP
PHP判断密码强度的方法详解
May 26 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
关于PHP中interface的用处详解
Jul 26 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分页查询的简单实现代码
2017/03/14 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Django 限制访问频率的思路详解
2019/12/24 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
Python多线程的退出控制实现
2020/08/10 Python
电脑租赁公司创业计划书
2014/01/08 职场文书
自荐信需注意事项
2014/01/25 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2015年信访工作总结
2015/04/07 职场文书
2015年科室工作总结
2015/04/10 职场文书
债务纠纷起诉书
2015/05/20 职场文书
导游词之潮音寺
2019/09/26 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server