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);

该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,根据属性来查询,就想sql的where里的多个and如

如:

findAllByAttributes(array(‘username‘=>‘admin‘));

SELECT *  from one_table where username = ‘admin‘ and password = ‘123456‘;

 对应的AR model查询如下

Admin::model()->findAllByAttributes(array(‘username‘=>‘admin‘, ‘password‘=>‘123456‘));

4、$admin=Admin::model()->findAllBySql($sql,$params);

该方法是根据SQL语句查询一个数组,如:

findAllBySql("select *from admin where username=: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 where username=: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 is not 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 where username=: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‘));

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‘=>1)代表数据库中的admin表根据条件username=‘admin‘,查询出的所有结果status字段都自加1

================================================================================================================================================

六、删除的方法

1、Post::model()->deleteAll($condition,$params);

$count = Admin::model()->deleteAll(‘username=:name and password=: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 "删除失败";

}

时间: 2024-11-05 13:56:15

Yii框架Ar操作的相关文章

yii框架AR详解

yii框架AR详解 虽 然Yii DAO可以处理事实上任何数据库相关的任务,但很可能我们会花费90%的时间用来编写一些通用的SQL语句来执行CRUD操作(创建,读取,更新和删除). 同时我们也很难维护这些PHP和SQL语句混合的代码,要解决这些问题,我们可以使用Active Record.    Active Record(AR)是一种流行的对象关系映射(ORM)技术.每个AR类代表一个数据表(或视图),其字段作为AR类的属性,一个AR实例代表在表中的 一行.常见的CRUD操作被作为AR类的方法

Yii框架AR对象数据转化为数组

demo函数作用:将AR对象数据转化为数组 局限:仅用于findAll的多维数组,find一维数组可以先转化为多维数组的一个元素在使用 1 function actionIndex() 2 { 3 4 $data = Tableone::model()->findAll(array( 5 "limit"=>"10", 6 )); 7 8 /** 9 * ar对象转化为数组 10 * 仅用于findAll 11 */ 12 $return = array_

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

用Yii框架实现AR类自动记录日志

定义一个新的AR类MyActiveRecord并继承CActiveRecord类,然后定义日志处理事件RecordLog: public function RecordLog($objEvent) {        //记录日志操作,需要在各个类中各自实现 } 2. 在类初始化的时候为记录日志事件附加一个事件处理程序,即绑定日志记录事件: public function init() {        //绑定日记记录事件 $this->attachEventHandler('onRecordL

Yii框架操作cookie与session的方法实例详解

cookie操作 设置cookie ? 1 2 3 4 5 6 //获取response->cookies组件 $cookies = \Yii::$app->response->cookies; //设置cookie数组 $array_cookies=array('name'=>'user','value'=>'doubly'); //添加cookie数据 $cookies->add(new Cookie($array_cookies)); 删除cookie ? 1 $

CI 框架中 AR 操作

Model 层中的部分代码 1 /** 2 * CI 中的 AR 操作 3 * @author zhaoyingnan 4 **/ 5 public function mAR() 6 { 7 /*************** 查询 *************/ 8 //select * from mp4ba limit 21,10; 9 //$objResult = $this->db->get('mp4ba', 10, 21); 10 //echo $this->db->last

YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)

                        YII 框架源码分析             百度联盟事业部--黄银锋   目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 2.2.YiiBase 静态类 5 2.3.组件 6 2.4.模块 9 2.5 .App 应用   10 2.6 .WebApp 应用   11 3.系统组件 13 3.1.日志路由组件  13 3.2.Url 管理组件  15 3.3.异常

yii框架数据库操作数据访问对象(DAO)简单总结

Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码.Yii 的Active Record( AR ),实现了被广泛采用的对象关系映射(ORM)办法,进一步简化数据库编程.按照约定,一个类代表一个表,一个实例代表一行数据.Yii AR消除了大部分用于处理CRUD(创建,

Yii框架官方教程增补篇1——开始:Yii是什么

Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用.它使Web开发中的可复用度最大化,可以显著提高你的Web应用开发速度.Yii 这个名字(读作易(Yee) 或 [ji:])是"Yes It Is!"的缩写.这往往是对于一些经常被问到的问题的最准确的答案: Yii快不快?安全吗?专业吗?是否适用于我的下一个项目?Yes, it is! Yii框架作者薛强同时也是Prado Framework的作者,在编写Yii框架的过程中,作者最大化借鉴了Prado,Ruby