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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
php读取数据库信息的几种方法
May 24 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
关于laravel 日志写入失败问题汇总
Oct 17 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 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学习 字符串课件
2008/06/15 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
原生javascript实现分页效果
2017/04/21 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python处理xml文件的方法小结
2017/05/02 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python爬虫添加请求头代码实例
2019/12/28 Python
Python bytes string相互转换过程解析
2020/03/05 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
用python实现名片管理系统
2020/06/18 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
一套SQL笔试题
2016/08/14 面试题
大学自荐信
2013/12/12 职场文书
初一家长会邀请函
2014/01/31 职场文书
环卫工人节活动总结
2014/08/29 职场文书
委托培训协议书
2014/11/17 职场文书
狮子林导游词
2015/02/03 职场文书
2014年底个人工作总结
2015/03/10 职场文书
保研专家推荐信范文
2015/03/25 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书