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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
写一个用户在线显示的程序
Oct 09 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
php中二分法查找算法实例分析
Sep 22 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
Laravel中Kafka的使用详解
Mar 24 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读写文件的方法(生成HTML)
2006/11/27 PHP
PHP程序员编程注意事项
2008/04/10 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
用jscript实现新建word文档
2007/06/15 Javascript
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
详解JS面向对象编程
2016/01/24 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
Python深入学习之内存管理
2014/08/31 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
用Python shell简化开发
2018/08/08 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
医学院校毕业生自荐信范文
2014/01/01 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
MySQL 计算连续登录天数
2022/05/11 MySQL
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python