`
dcj3sjt126com
  • 浏览: 1872104 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

YII学习第四天,Yii框架里数据库操作详解-AR模式

    博客分类:
  • YII
阅读更多

AR模式中的增删查改操作示例如下:

一、查询数据集合

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=new Admin;        
      $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')); 
  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')); 
  $pk代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合,$condition代表条件,$params传入的值 
 3、Post::model()->updateCounters($counters,$condition,$params); 
   $count=Admin::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'admin')); 
   array('status'=>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为这些的数据 

 2、Post::model()->deleteByPk($pk,$condition,$params); 
      $count = Admin::model()->deleteByPk(1); 
      $count =Admin::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'admin')); 
分享到:
评论

相关推荐

    Yii(易).docx

    ### Yii2框架详解:从入门到精通 #### 一、简介 Yii2是一款高效、安全且功能丰富的PHP Web开发框架,适用于开发大型Web应用程序。它提供了高性能的解决方案,旨在简化开发人员的工作流程,并帮助他们快速构建高质量...

    YII快速入门教程

    ### YII快速入门教程知识点详解 #### 一、基本概念 **1.... - **定义**: 入口文件是启动Yii框架...以上内容概述了YII框架的基本概念、表单处理、数据库操作、缓存机制以及扩展机制,为初学者提供了一个全面的入门指南。

    Yii Blog Book.pdf

    - Yii提供了AR(Active Record)模式简化数据库操作。 #### 六、面向对象编程与数据库编程基础 - **面向对象编程(OOP)**:Yii框架基于面向对象的设计原则。 - 理解类、对象、继承、封装、多态等概念至关重要。...

    详解YII关联查询

    在Yii框架中,关联查询(Association Queries)是Active Record(AR)模式的重要组成部分,它允许开发者轻松地处理数据库中的多表关系。AR是Yii提供的一个ORM(对象关系映射)工具,它允许开发者以面向对象的方式...

    从零开始学YII2框架(四)扩展插件yii2-kartikgii

    10. Yii 框架应用(Applications)操作实例详解 11. Yii框架应用组件用法实例分析 12. Yii 框架使用Gii生成代码操作示例 通过这些文章,你可以深入了解Yii2框架的各种特性和最佳实践,提升你的开发技能。

    详解Yii2.0使用AR联表查询实例

    Yii2.0是Yii框架的第二代版本,是一个高级的PHP框架,用于快速、安全和专业地开发Web应用程序。在Yii2.0中,数据访问主要依赖于Active Record(活动记录)模式,它是一种对象关系映射(ORM)技术。该技术允许开发者...

    Yii2中的场景(scenario)和验证规则(rule)详解

    Yii2的rule用于对模型属性进行验证,scenario用户定义不同场景下需要验证的模型,下面这篇文章主要给大家介绍了关于Yii2中场景(scenario)和验证规则(rule)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友...

    在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解

    本文主要给大家介绍了关于在Yii2特定页面禁用调试工具栏Debug Toolbar的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: yii2的调试工具栏,堪称神器。只要在配置文件web.php中配置好,就能...

    bindParam和bindValue的区别以及在Yii2中的使用详解

    bindParam() 和 bindValue() 非常相似...$result = Yii::$app->db->createCommand(select * from product where id=:id)->bindParam(:id,$id,\PDO::PARAM_INT)->queryAll(); $result = Yii::$app->db->createCommand(se

Global site tag (gtag.js) - Google Analytics