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

Yii框架基本操作

    博客分类:
  • php
 
阅读更多
public function getMinLimit () {
        $sql = "...";
        $result = yii::app()->db->createCommand($sql);
        $query = $result->queryAll();
        return array (
                $query [0] ['max'],
        );
    }



$connection=Yii::app()->db;
$sql="SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id";
$rows=$connection->createCommand ($sql)->query();
foreach ($rows as $k => $v ){
    echo $v['add_time'];
}



$db = Yii::app()->db;
$dbTrans = $db->beginTransaction();


$dbTrans->commit();
$dbTrans->rollback();

//分页一般写法:
$criteria = new CDbCriteria;
$count = DnOnline::model()->count($criteria);
$pages = new CPagination($count);              
$pages->pageSize = 5;
$pages->applylimit($criteria);
$model = DnOnline::model()->findAll($criteria);

//记得控制器里有个函数paginate($itemCount,$pageSize=null,$pageVar=null)
CDB写法:

$criteria = new CDbCriteria;
$sql = "SELECT * FROM USER";
$model= Yii::app()->db->createCommand($sql)->queryAll();
$pages = new CPagination(count($model));              
$pages->pageSize = 4;
$pages->applylimit($criteria);
$model=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$model->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$model->bindValue(':limit', $pages->pageSize);
$model=$model->queryAll();


//或者:

$criteria = new CDbCriteria;
$connection=Yii::app()->db;
$sql="SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id ";
$model= Yii::app()->db->createCommand($sql)->queryAll();
$pages = new CPagination(count($model));              
$pages->pageSize = 4;
$pages->applylimit($criteria);

$model=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$model->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$model->bindValue(':limit', $pages->pageSize);
$model=$model->queryAll();

一、查询数据集合

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

 

      $userinfo=Userinfo::model()->find(array('condition'=>'user_id=:user_id','params'=>array(':user_id'=>$uid)));
      print_r($userinfo->user_id);

 

 


 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,否则没有找到

 

 

 

        $sql = "select count(*) as count  from " . $this->tableName() . " where user_id = $userId";
        $query = $result->queryAll();
        $pageSize =10;
        $count = $query [0] ['count'];
        $pageCount = ceil($count / $pageSize);
        return $pageCount;



======================================== 四、添加的方法 
$admin=newAdmin;       
$admin->username=$username;
$admin->password=$password;
if($admin->save ()>0){
   echo "添加成功"; 
}else{ 
   echo "添加失败"; 
}

 

 

 

$userLimit = new UserLimit();
$userLimit->item = 0.30000;
if($userLimit->insert (){

 

}


// 五、修改的方法 


$userLimitRet = UserLimit::model()->findByPk (array (
                                'user_id' => $userId,
                                'category_id' => $v
                        ));
$userLimitRet->order = $order;

if (! $userLimitRet->update ()) {
} 

$userAmount=userAmount::model()->findByPk ($userId);
$userAmount->credit=Yii::app()->request->getParam('credit',10000);
$ret = $userAmount->save ();

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 "修改失败"; 
}  

$ret = $this->updateAll (array (
                                'set' => $Set
                        ), " user_id in ( " . $userIds . " ) and category_id = " . $categoryId);

if($ret){
    return true;
}else {
    return false;
}

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=:nameandpassword=: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 "删除失败"; 
}

 

分享到:
评论

相关推荐

    yii框架中文文档、yii中文手册教程

    “yii框架中文手册教程.pdf”是Yii框架的中文版官方手册,它是学习Yii框架的重要资源。这份PDF文档通常会包括以下内容: 1. **安装与配置**:介绍如何在服务器上安装Yii,以及设置基本的项目环境。 2. **快速入门**...

    php最新框架YII框架

    一、Yii框架概述: 1. 高性能:Yii通过使用缓存机制、优化的查询构建器和预编译的模板引擎等技术,提供了比其他PHP框架更快的运行速度。 2. MVC设计模式:遵循MVC模式,使得模型、视图和控制器之间职责分明,有利于...

    yii框架中文手册教程

    Yii框架支持的操作系统和环境要求包括: - PHP 5.1.0或更高版本,Yii框架对PHP版本有最低要求,以确保框架功能的正常使用。 - Yii框架在Windows和Linux系统上的Apache HTTP服务器中进行了测试,同时理论上应该支持...

    YII框架中文手册

    **Yii框架中文手册** ...这个中文手册是开发者了解和掌握Yii框架的重要资源,它提供了...在实际开发中,不断查阅并理解Yii中文手册,结合实例操作,将理论知识转化为实践经验,将有助于提升开发者在Yii框架下的编程技能。

    Yii框架快速入门

    Yii框架遵循MVC(Model-View-Controller)架构模式,提供了丰富的特性,如缓存管理、安全控制、数据库访问、表单验证等。它还支持AJAX,能够轻松创建动态Web应用。Yii的性能优秀,因为其代码经过了精心优化,且内建...

    Yii框架PDF中文文档

    ### Yii框架知识点总结 #### 一、概述与新特性 **Yii** 是一款高性能的PHP Web应用程序开发框架,以其简洁高效著称。该框架旨在帮助开发者快速构建安全且高效的Web应用。本文档根据官方中文文档及《Yii权威指南》...

    Yii框架执行流程及部分源码分析

    让我们深入了解一下Yii框架的执行流程及其部分源码分析。 1. **程序结构及配置** Yii的项目结构通常包含以下关键部分: - `protected`:存放应用的核心代码,如模型、控制器、配置文件等。 - `runtime`:运行时...

    yii示例-下拉框-最新的yii框架

    在这个“yii示例-下拉框-最新的yii框架”中,我们将探讨如何在Yii2框架中实现下拉框功能。 1. **安装Yii框架** 在开始创建下拉框之前,你需要确保已经安装了最新版本的Yii框架。这通常通过Composer完成,运行`...

    yii框架下的yii_blog 博客系统

    通过这个"yii_blog 博客系统"项目,你不仅可以深入理解Yii框架的核心概念,还能掌握Web开发的基本流程,为将来更复杂的项目打下坚实基础。同时,这个项目也适合初学者用来练习和巩固PHP编程技能,因为Yii框架对新手...

    Yii框架学习笔记.pdf

    本篇学习笔记将详细介绍Yii框架的基本概念,包括请求处理流程、组件、事件与行为、错误和日志处理、国际化以及视图和控制台应用等方面。 ### 请求的处理流程 1. **项目入口脚本**:在Yii框架中,项目的入口脚本...

    yii框架中文版手册pdf和chm格式

    1. **Yii框架的基本概念**: - **MVC架构**:Yii中的MVC设计模式将业务逻辑、数据展示和用户交互分离开来,提高了代码的可读性和可维护性。 - **组件化设计**:Yii的核心功能通过组件实现,可以方便地扩展和复用。...

    基于Yii 框架开发的博客

    回到这个基于Yii框架的博客项目,我们可以推测其基本架构和组成部分: - **用户模块**:包括用户注册、登录、个人资料管理等功能。可能使用了Yii的认证和授权机制,确保用户安全。 - **博客文章模块**:允许用户...

    yii框架中文手册教程和YII模板

    “yii框架中文手册教程.pdf”是Yii框架的中文版官方文档,对于初学者来说是非常宝贵的资源。手册涵盖了框架的安装、配置、基础用法、高级特性和最佳实践等内容。其中,安装部分会指导如何设置开发环境,包括PHP版本...

    Yii框架1.1版本

    5. **I18N与L10N支持**:Yii框架提供了强大的国际化(I18N)和本地化(L10N)支持,方便开发者构建多语言应用。 6. **RESTful API开发**:Yii 1.1支持创建RESTful风格的API,这对于现代Web服务和移动应用的开发尤为...

    YII框架入门视频教程

    通过这五个视频,你将能够建立起对Yii框架的基本认识,掌握其核心功能,并具备开发简单Web应用的能力。继续深入学习,你还可以探索Yii的高级特性,如扩展、行为和事件,以及如何利用Yii2的先进特性和社区提供的丰富...

    PHP的Yii框架的基本使用示例

    接下来,我们将深入探讨Yii框架中几个重要的知识点,包括CGridView控件的使用、数据库操作、关系定义,以及触发JavaScript事件。 首先,CGridView是Yii中一个用于在Web页面上展示数据的网格视图控件。它支持分页、...

    yii框架入门实例

    ### Yii框架入门实例知识点详解 #### 一、Yii框架简介及优势 - **灵活适应业务需求**:Yii框架因其...通过以上内容的学习,您可以全面了解Yii框架的基础知识和实践操作方法,为进一步深入学习和应用打下坚实的基础。

    Yii框架文档(2010.7.18)

    ### Yii框架的基本概念 #### 模型-视图-控制器(MVC) MVC是Yii架构的核心,每个应用都由一系列模型、视图和控制器组成。模型负责与数据进行交互,视图负责展示数据,控制器负责接收用户输入并作出响应。 #### 入口...

Global site tag (gtag.js) - Google Analytics