查询

查询多条返回数据集合

  1. //1.该方法是根据一个条件查询一个集合
  2. $admin=Admin::model()->findAll($condition,$params);
  3. $admin=Admin::model()->findAll("username=:name",array(":name"=>$username));
  4.  
  5. //2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键)
  6. $admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
  7. $admin=Admin::model()->findAllByPk($id,"name like :name and age=:age",array(':name'=>$name,'age'=>$age));
  8. $admin=Admin::model()->findAllByPk(array(1,2));
  9.  
  10. //3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面)
  11. $admin=Admin::model()->findAllByAttributes($attributes,$condition,$params);
  12. $admin=Admin::model()->findAllByAttributes(array('username'=>'admin'));
  13.  
  14. //4.findAllBySql (该方法是根据SQL语句查询一个数组)
  15. $admin=Admin::model()->findAllBySql($sql,$params);
  16. $admin=Admin::model()->findAllBySql("select * from admin where username like :name",array(':name'=>'aaa%'));

查询一条返回对象

  1. /根据主键查询出一个对象,如:findByPk(1);
  2. $admin=Admin::model()->findByPk($postID,$condition,$params);
  3. $admin=Admin::model()->findByPk(1);
  4.  
  5. //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据
  6. $row=Admin::model()->find($condition,$params);
  7. $row=Admin::model()->find('username=:name',array(':name'=>'admin'));
  8.  
  9. //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据
  10. $admin=Admin::model()->findByAttributes($attributes,$condition,$params);
  11. $admin=Admin::model()->findByAttributes(array('username'=>'admin'));
  12.  
  13. //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据
  14. $admin=Admin::model()->findBySql($sql,$params);
  15. $admin=Admin::model()->findBySql("select * from admin where username=:name",array(':name'=>'admin'));
  16.  
  17. //拼一个获得SQL的方法,在根据find查询出一个对象
  18. $criteria=new CDbCriteria;
  19. $criteria->select='username'; // only select the 'title' column
  20. $criteria->condition='username=:username';
  21. $criteria->params=array(":username=>'admin'");
  22. $criteria->order = "id DESC";
  23. $criteria->limit = "3";
  24. $post=Post::model()->find($criteria); // $params isnot needed

查询个数,判断查询是否有结果

  1. //该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字
  2. $n=Post::model()->count($condition,$params);
  3. $n=Post::model()->count("username=:name",array(":name"=>$username));
  4.  
  5. //该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字
  6. $n=Post::model()->countBySql($sql,$params);
  7. $n=Post::model()->countBySql("select * from admin where username=:name",array(':name'=>'admin'));
  8.  
  9. //该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
  10. $exists=Post::model()->exists($condition,$params);
  11. $exists=Post::model()->exists("name=:name",array(":name"=>$username));

添加

  1. $categoryModel = new Category(); //new 一个model,然后使用save(),就是添加
  2. $categoryModel->inputtime = time();
  3. $categoryModel->cname = $_POST['Category']['cname'];
  4. if($categoryModel->save()){
  5. $this->redirect(array('index'));
  6. }
  1. $categoryModel = new Category();
  2. $categoryModel->attributes = $_POST['Category']; //测试不能添加多字段,还没有找到解决方法
  3. if($categoryModel->save()){
  4. $this->redirect(array('index'));
  5. }
  1. 解决方法
    model Category rules方法中验证的字段才会插入数据库,如果不需要验证字段还要插入数据库可以
    array('type,catid,description,thumb,content,inputtime,updatetime','safe'),

修改

  1. $categoryModel = Category::model();
  2. $categoryInfo = $categoryModel->findByPk($id); //返回的还是对象,要是findAllByPk()就不行,返回的不是对象,会报错
  3. if(isset($_POST['Category'])){
  4. $categoryInfo->cname = $_POST['Category']['cname'];
  5. $categoryInfo->inputtime = $_POST['Category']['inputtime'];
  6. if($categoryInfo->save()){
  7. $this->redirect(array('index'));
  8. }
  9. }
  10. $this->render('edit',array('categoryModel'=>$categoryInfo));

删除

  1. $categoryModel = Category::model();
  2. $isnot = Article::model()->findBySql("select * from {{article}} where catid = $id");
  3. if($isnot){
  4. Yii::app()->user->setFlash('hasArt', '栏目下面有文章,请先删除文章');
  5. $this->redirect(array('index'));
  6. }else{
  7. if($categoryModel->deleteByPk($id)){ //根据主键删除数据
  8. $this->redirect(array('index'));
  9. }
  10. }

YII 1.0 增删改查的更多相关文章

  1. yii2.0增删改查实例讲解

    yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...

  2. EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

    EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...

  3. MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

    EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...

  4. Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

    在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...

  5. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

  6. HBase1.2.0增删改查Scala代码实现

    增删改查工具类 class HbaseUtils { /** * 获取管理员对象 * * @param conf 对hbase client配置一些参数 * @return 返回hbase的HBase ...

  7. yii添加行的增删改查

    效果图: 控制器: <?phpnamespace backend\controllers;use Yii;use yii\web\Controller;use backend\models\Zh ...

  8. Yii框架的增删改查总结分析

    一.查询数据 1.findAll(根据一个条件查询一个集合) $admin=Admin::model()->findAll($condition,$params); $admin=Admin:: ...

  9. yii2.0增删改查

    //关闭csrf public $enableCsrfValidation = false; 1.sql语句 //查询 $db=\Yii::$app->db ->createCommand ...

随机推荐

  1. C# 经典入门11章,比较

    1类型比较 所有的类懂从System.Object中继承了GetType()方法,这个方法和typeof()运算符一起使用,可以确定对象的类型.例如: if(myObj.GetType()==type ...

  2. 转:web_submit_data和web_submit_form的差别

    在LoadRunner中有两个常用函数:Web_submit_form和Web_submit_data,在群里有人问这两个函数有什么区别.为什么会有两个不同却功能相似的函数.区别在哪里. 首先,从工具 ...

  3. USACO Section 1.2 Name That Number 解题报告

    题目 题目描述 在一个农场里面,每一头牛都有一个数字编号,但是现在这些牛不喜欢这种编号,它们想把这些数字编号转化成为可以接受的字母的形式.数字与字母的转换表如下: 2: A,B,C 5: J,K,L ...

  4. 【BZOJ 1579】 1579: [Usaco2009 Feb]Revamping Trails 道路升级 (最短路)

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M< ...

  5. Android4.0图库Gallery2代码分析(二) 数据管理和数据加载

    Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...

  6. JAVA中SSL证书认证通讯

    JAVA中SSL证书认证通讯 SSL通讯服务端 /******************************************************************** * 项目名称 ...

  7. ExtJS如何取得GridPanel当前选择行数据对象 - nuccch的专栏 - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  8. flexpaper二次开发

    1.首先下载FlexPaper的源码.下载地址 2.本人不懂flash,只是百度下,然后自己瞎弄弄的.我用的flash build 4.5 提供个key:1499-4181-9296-6452-299 ...

  9. 使用maven管理后,依然找不到需要的jar包

    使用maven管理后,依然报错,找不到,比如如下错误java.lang.ClassNotFoundException: org.springframework.web.context.ContextL ...

  10. 路过Haxe

    刚才在看Nape的时候,看到Haxe的代码,意外的感觉到亲切. 因为之前写过as2代码,最近学习了python,所以对haxe看起来很亲切,于是路过一下写了个HelloWorld. 另外,估计很长时间 ...