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 文件扩展名 获取函数
Jun 03 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 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加密解密类代码
2011/11/27 PHP
php 字符串替换的方法
2012/01/10 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
Vue3为什么这么快
2020/09/23 Javascript
使用Python操作excel文件的实例代码
2017/10/15 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python之pymysql的使用小结
2019/07/01 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
数学专业毕业生自荐信
2013/11/10 职场文书
公司门卫管理制度
2014/02/01 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
岗位工作说明书
2014/07/29 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android