zoukankan      html  css  js  c++  java
  • 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'));
                }
            }
    
  • 相关阅读:
    [译]:Orchard入门——媒体文件的添加与管理
    [译]:Orchard入门——给网站添加页面
    [译]:Orchard入门——给网站添加新博客
    [译]:Orchard入门——导航与菜单
    [译]:Orchard入门——构建你的第一个Orchard网站
    [译]:Orchard入门——Orchard控制面板概览
    [译]:Orchard入门——使用WebMatrix管理Orchard网站
    [译]:Orchard入门——手动安装Orchard
    [译]:Orchard入门——安装Orchard
    VS2013缺少报表工具
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4755335.html
Copyright © 2011-2022 走看看