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的ASP防火墙
Oct 09 PHP
Apache2 httpd.conf 中文版
Dec 06 PHP
php模板中出现空行解决方法
Mar 08 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
php实现监听事件
Nov 06 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel手动创建数组分页的实现代码
Jun 07 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导出csv文件,可导出前导0实例代码
2016/11/16 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Django框架模板用法入门教程
2019/11/04 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
化工工艺专业求职信
2013/09/22 职场文书
简历中自我评价分享
2013/10/09 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
应聘护士求职信
2014/07/21 职场文书
会员卡清退活动总结
2014/08/27 职场文书
文明礼仪倡议书
2015/04/28 职场文书
社区党员干部承诺书
2015/05/04 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
第一军规观后感
2015/06/12 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS