YII 1.0 增删改查
查询
查询多条返回数据集合
- //1.该方法是根据一个条件查询一个集合
- $admin=Admin::model()->findAll($condition,$params);
- $admin=Admin::model()->findAll("username=:name",array(":name"=>$username));
- //2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键)
- $admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
- $admin=Admin::model()->findAllByPk($id,"name like :name and age=:age",array(':name'=>$name,'age'=>$age));
- $admin=Admin::model()->findAllByPk(array(1,2));
- //3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面)
- $admin=Admin::model()->findAllByAttributes($attributes,$condition,$params);
- $admin=Admin::model()->findAllByAttributes(array('username'=>'admin'));
- //4.findAllBySql (该方法是根据SQL语句查询一个数组)
- $admin=Admin::model()->findAllBySql($sql,$params);
- $admin=Admin::model()->findAllBySql("select * from admin where username like :name",array(':name'=>'aaa%'));
查询一条返回对象
- /根据主键查询出一个对象,如:findByPk(1);
- $admin=Admin::model()->findByPk($postID,$condition,$params);
- $admin=Admin::model()->findByPk(1);
- //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据
- $row=Admin::model()->find($condition,$params);
- $row=Admin::model()->find('username=:name',array(':name'=>'admin'));
- //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据
- $admin=Admin::model()->findByAttributes($attributes,$condition,$params);
- $admin=Admin::model()->findByAttributes(array('username'=>'admin'));
- //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据
- $admin=Admin::model()->findBySql($sql,$params);
- $admin=Admin::model()->findBySql("select * from admin where username=:name",array(':name'=>'admin'));
- //拼一个获得SQL的方法,在根据find查询出一个对象
- $criteria=new CDbCriteria;
- $criteria->select='username'; // only select the 'title' column
- $criteria->condition='username=:username';
- $criteria->params=array(":username=>'admin'");
- $criteria->order = "id DESC";
- $criteria->limit = "3";
- $post=Post::model()->find($criteria); // $params isnot needed
查询个数,判断查询是否有结果
- //该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字
- $n=Post::model()->count($condition,$params);
- $n=Post::model()->count("username=:name",array(":name"=>$username));
- //该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字
- $n=Post::model()->countBySql($sql,$params);
- $n=Post::model()->countBySql("select * from admin where username=:name",array(':name'=>'admin'));
- //该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
- $exists=Post::model()->exists($condition,$params);
- $exists=Post::model()->exists("name=:name",array(":name"=>$username));
添加
- $categoryModel = new Category(); //new 一个model,然后使用save(),就是添加
- $categoryModel->inputtime = time();
- $categoryModel->cname = $_POST['Category']['cname'];
- if($categoryModel->save()){
- $this->redirect(array('index'));
- }
- $categoryModel = new Category();
- $categoryModel->attributes = $_POST['Category']; //测试不能添加多字段,还没有找到解决方法
- if($categoryModel->save()){
- $this->redirect(array('index'));
- }
- 解决方法
model Category 的rules方法中验证的字段才会插入数据库,如果不需要验证字段还要插入数据库可以
array('type,catid,description,thumb,content,inputtime,updatetime','safe'),
修改
- $categoryModel = Category::model();
- $categoryInfo = $categoryModel->findByPk($id); //返回的还是对象,要是findAllByPk()就不行,返回的不是对象,会报错
- if(isset($_POST['Category'])){
- $categoryInfo->cname = $_POST['Category']['cname'];
- $categoryInfo->inputtime = $_POST['Category']['inputtime'];
- if($categoryInfo->save()){
- $this->redirect(array('index'));
- }
- }
- $this->render('edit',array('categoryModel'=>$categoryInfo));
删除
- $categoryModel = Category::model();
- $isnot = Article::model()->findBySql("select * from {{article}} where catid = $id");
- if($isnot){
- Yii::app()->user->setFlash('hasArt', '栏目下面有文章,请先删除文章');
- $this->redirect(array('index'));
- }else{
- if($categoryModel->deleteByPk($id)){ //根据主键删除数据
- $this->redirect(array('index'));
- }
- }
YII 1.0 增删改查的更多相关文章
- yii2.0增删改查实例讲解
yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...
- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...
- Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]
在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...
- VUE2.0增删改查附编辑添加model(弹框)组件共用
Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...
- HBase1.2.0增删改查Scala代码实现
增删改查工具类 class HbaseUtils { /** * 获取管理员对象 * * @param conf 对hbase client配置一些参数 * @return 返回hbase的HBase ...
- yii添加行的增删改查
效果图: 控制器: <?phpnamespace backend\controllers;use Yii;use yii\web\Controller;use backend\models\Zh ...
- Yii框架的增删改查总结分析
一.查询数据 1.findAll(根据一个条件查询一个集合) $admin=Admin::model()->findAll($condition,$params); $admin=Admin:: ...
- yii2.0增删改查
//关闭csrf public $enableCsrfValidation = false; 1.sql语句 //查询 $db=\Yii::$app->db ->createCommand ...
随机推荐
- C# 经典入门11章,比较
1类型比较 所有的类懂从System.Object中继承了GetType()方法,这个方法和typeof()运算符一起使用,可以确定对象的类型.例如: if(myObj.GetType()==type ...
- 转:web_submit_data和web_submit_form的差别
在LoadRunner中有两个常用函数:Web_submit_form和Web_submit_data,在群里有人问这两个函数有什么区别.为什么会有两个不同却功能相似的函数.区别在哪里. 首先,从工具 ...
- USACO Section 1.2 Name That Number 解题报告
题目 题目描述 在一个农场里面,每一头牛都有一个数字编号,但是现在这些牛不喜欢这种编号,它们想把这些数字编号转化成为可以接受的字母的形式.数字与字母的转换表如下: 2: A,B,C 5: J,K,L ...
- 【BZOJ 1579】 1579: [Usaco2009 Feb]Revamping Trails 道路升级 (最短路)
1579: [Usaco2009 Feb]Revamping Trails 道路升级 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M< ...
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...
- JAVA中SSL证书认证通讯
JAVA中SSL证书认证通讯 SSL通讯服务端 /******************************************************************** * 项目名称 ...
- ExtJS如何取得GridPanel当前选择行数据对象 - nuccch的专栏 - 博客频道 - CSDN.NET
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- flexpaper二次开发
1.首先下载FlexPaper的源码.下载地址 2.本人不懂flash,只是百度下,然后自己瞎弄弄的.我用的flash build 4.5 提供个key:1499-4181-9296-6452-299 ...
- 使用maven管理后,依然找不到需要的jar包
使用maven管理后,依然报错,找不到,比如如下错误java.lang.ClassNotFoundException: org.springframework.web.context.ContextL ...
- 路过Haxe
刚才在看Nape的时候,看到Haxe的代码,意外的感觉到亲切. 因为之前写过as2代码,最近学习了python,所以对haxe看起来很亲切,于是路过一下写了个HelloWorld. 另外,估计很长时间 ...