Yii模型操作之criteria查找数据库的方法

本文实例讲述了Yii模型操作之criteria查找数据库的方法。分享给大家供大家参考,具体如下:

数据模型搜索方法:

public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria=new CDbCriteria; $criteria->compare('id',$this->id); $criteria->compare('title',$this->title,true); //支持模糊查找 $criteria->compare('content',$this->content,true); //支持模糊查找 $criteria->compare('type',$this->type); $criteria->compare('user',$this->user,true); //支持模糊查找 $criteria->compare('status',$this->status); $criteria->compare('create_data',$this->create_data,true); //支持模糊查找 return new CActiveDataProvider($this, array( 'criteria'=>$criteria, 'pagination'=>array( 'pageSize'=>50, ), )); }

定义比较运算:

$criteria->compare('create_time','<='.$this->endtime), //创建早间小于等于指定时间

定义要查找的字段:

//查找的结果 $criteria->select = 'id,title,content,author,status,createtime', //也可以以下一种方式定义 $criteria->select = array('id','title','content','author','status','createtime'),

定义填加查找条件:

//定义条件 $criteria->select = 'status=1', //添加匹配 $criteria->compare('title',$this->title,true), //添加条件 $condition可以是数组,也可以是字符串,and可以省略 $criteria->addCondition($condition,'and'), //添加IN条件 $column为字段名 $criteria->addInCondition(string $column, array $values, string $operator='AND') //添加notin条件 $criteria->addNotInCondition(string $column, array $values, string $operator='AND') //添加like条件 $criteria->addSearchCondition(string $column, string $keyword), //添加Between条件 $criteria->addBetweenCondition(string $column, string $valueStart, string $valueEnd, string $operator='AND'),

JOIN连表查询

$criteria->join = 'LEFT JOIN users ON users.id=authorID',

order查询结果排序:

$criteria->order = 'createtime DESC',

group结果分组:

$criteria->group = 'projectID, teamID',

having筛选分组结果分组数量:

$criteria->having = 'SUM(revenue)<50000',

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

时间: 2025-01-26 23:50:43

Yii模型操作之criteria查找数据库的方法的相关文章

Yii模型操作之criteria查找数据库的方法_php实例

本文实例讲述了Yii模型操作之criteria查找数据库的方法.分享给大家供大家参考,具体如下: 数据模型搜索方法: public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria=new CDbCriteria; $criteria->compare('id',$this->id); $c

Android编程操作嵌入式关系型SQLite数据库实例详解_Android

本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数. 除非是主键被定义为Integer,这时只能存储64位整数 2.创建数据库的表时可以不指定数据类型,例如: 复制代码 代码如下: CREATE TAB

Android编程操作嵌入式关系型SQLite数据库实例详解

本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数. 除非是主键被定义为Integer,这时只能存储64位整数 2.创建数据库的表时可以不指定数据类型,例如: 复制代码 代码如下:CREATE TABL

Yii连接多个数据库的方法

Yii连接多个数据库的方法     一.配置多数据库 大多数情况下,我们都会采用同一类型的数据库,只是为了缓解压力分成主从或分布式形式而已.声明你可以在主配置文件(main.php)中里声明其它的数据库连接: <?php     'components'=>array(         'db'=>....// 主链接         'db1'=>...// 从连接1         'db2'=>...// 从连接2     ) 操作在代码里,可以通过Yii::app()

Yii框架中 find findAll 查找出制定的字段的方法对比_php实例

众所周知 modelName::model() -> find() //找出的是一个对象 modelName::model() -> findALL() //找出的是一个对象集合的数组 如何找出我所需要的字段的数据,而不是全部字段的数据 之前我是这么做的 $criteria = new CDbCriteria; $criteria->select = 'username,id,email'; $criteria->order = 'id DESC'; $users = modelN

Yii视图操作之自定义分页实现方法_php实例

本文实例讲述了Yii视图操作之自定义分页实现方法.分享给大家供大家参考,具体如下: 1. 视图文件调用cgridview,clistview时候调用自定义的分页方法 <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'news-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'template'=>'{items}{su

03-创建模型操作---用户添加

原文:03-创建模型操作---用户添加 注册页面 add.html 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="

Yii视图操作之自定义分页实现方法

本文实例讲述了Yii视图操作之自定义分页实现方法.分享给大家供大家参考,具体如下: 1. 视图文件调用cgridview,clistview时候调用自定义的分页方法 <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'news-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'template'=>'{items}{su

将不确定变成确定~LINQ DBML模型可以对应多个数据库吗

答案是肯定的,一个DBML模型可以对应多个数据库,只要数据库中的表与模型中定义的表结构完成相同,就可以这个技术,我们可以用来开发一些通用的功能模块,如通过后台管理模块,我们将一些通用表进行抽象,如,对用户,角色,部门,菜单等进行抽象,将它的模块建立在我们的公用项目中,然后对这个模型进行操作,在建立DBContext上下文时,我们需要保留一个连接字符串,即,真正的项目中用哪个库,我们这个串就指定哪个库就行了. 如图,后台表结构 然后,它个模块可以用别对应包含这几个表结构的数据库,呵呵 通用后台系统