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 相关文章推荐
phpMyadmin 用户权限中英对照
Apr 02 PHP
php获取文件内容最后一行示例
Jan 09 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
隐性调用php程序的方法
Jun 13 PHP
ThinkPHP路由详解
Jul 27 PHP
php实现的一段简单概率相关代码
May 30 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 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
也谈php网站在线人数统计
2008/04/09 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
Bootstrap插件全集
2016/07/18 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
HTML的select控件美化
2017/03/27 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
Django小白教程之Django用户注册与登录
2016/04/22 Python
Python实现多线程的两种方式分析
2018/08/29 Python
TensorFlow实现Logistic回归
2018/09/07 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
django做form表单的数据验证过程详解
2019/07/26 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
毕业自我评价范文
2013/11/17 职场文书
大学生就业自荐书
2014/06/16 职场文书
班级读书活动总结
2014/06/30 职场文书
2014年班主任工作总结
2014/11/08 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
vue 实现上传组件
2021/05/31 Vue.js