一般处理过程:

模型进行数据操作,继承自CActiveRecord (活跃记录)

AR数据库向上的封装。AR通过OOP面向对象方式操作数据库。AR须要终于转变为详细的sql语句。通过一个中间类(criteria标准)协助转为的详细sql语句。find、findAll
就是转化为这个类的一些属性

文件路径AR  : \framework\db\ar\CActiveRecord.php

能够看到非常多方法

打开findAll函数进行类库追踪到  这个\framework\db\schema\CDbCommandBuilder.php 文件

再次进行追踪到这个文件\framework\db\schema\CDbCriteria.php:

为什么这样追踪:

1

2

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnV5aW5nZmVpODg4OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

3

经常使用查询方法

以下是三种查询方式

    function actionCeshi(){
$model = Goods::model(); //$infos = $model -> findAllByPk(10);
//$infos = $model -> findAllByPk(array(1,5,12));
////////////////////////////////////////////////////////////////////////////////////////// //findAll($condition,$param)
//$condition 就是sql语句的where条件
//查询诺基亚手机而且价格大于500元
//$infos = $model -> findAll("goods_name like '诺%' and goods_price>500");
//为了避免sql注入的安全问题。sql语句里边最好不要直接写条件信息
//$infos = $model -> findAll("goods_name like :name and goods_price>:price",array(':name'=>'诺%',':price'=>500));
////////////////////////////////////////////////////////////////////////////////////////// //有的时候我们查询信息,
//想要查询详细的"字段" select
//想要查询详细的"条件" condition
//想要查询详细的"排序" order
//想要查询详细的"分组" group
//想要查询详细的"限制" limit
//想要查询详细的"偏移量" offset //$infos = $model -> findAll(array(
// 'select'=>'goods_name,goods_price',
// 'condition'=>"goods_name like '诺%'",
// 'order'=>'goods_price desc',
// 'limit'=>3,
// 'offset'=>6,
//)); //////////////////////////////////////////////////////////////////////////////////////////
//通过criteria实现信息的查询
$criteria = new CDbCriteria();
$criteria -> select = "goods_name,goods_price";
$criteria -> condition = "goods_name like '摩%'";
//$criteria -> limit = 6;
$criteria -> order = "goods_price";
$infos = $model -> findAll($criteria); $this ->renderPartial('show',array('goods_infos'=>$infos)); //save()方法运行update或insert
//$model -> save();
}

全部控制器都继承CController,

l 父类Controller在哪了?

这个父类我们没有显示包括进程序里边,比方include、requre之类包括指令

l 那么这个父类控制器Controller我们在什么地方给包括进来的?

答:在Yii应用的主配置文件中边main.php,间接通过引入compoments组件文件夹进来的

l 那么主配置文件main.php在什么地方引入到我们的应用里边的呢?

答:在统一入口处index.php

YII进行数据查询及类库追踪的更多相关文章

  1. Yii2 数据查询

    转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...

  2. EF 数据查询效率对比

    优化的地方: 原地址:https://www.cnblogs.com/yaopengfei/p/9226328.html ①:如果仅是查询数据,并不对数据进行增.删.改操作,查询数据的时候可以取消状态 ...

  3. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  4. MVC实用架构设计(三)——EF-Code First(4):数据查询

    前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...

  5. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...

  6. SharePoint服务器端对象模型 之 使用CAML进展数据查询

    SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列 ...

  7. .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)

    阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...

  8. 6、SQL Server 数据查询

    一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...

  9. SQL Server 的表数据简单操作(表数据查询)

    --表数据查询----数据的基本查询-- --数据简单的查询--select * | 字段名[,字段名2, ...] from 数据表名 [where 条件表达式] 例: use 商品管理数据库 go ...

随机推荐

  1. [luogu] P2569 [SCOI2010]股票交易 (单调队列优化)

    P2569 [SCOI2010]股票交易 题目描述 最近 \(\text{lxhgww}\) 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\(\te ...

  2. IT同行请教我如何培养读书习惯,结果就是“读了1本书,并写下'读《成交》有感'一文”

    前段时间,我把CSDN博客的签名加上了"读过100+本经典书籍". 一个经常关注我CSDN博客的老乡,问我是如何做到的. 该老乡,准确来说是前辈,该前辈买了很多技术读物却没有耐心读 ...

  3. webpack实现模块化打包

    webpack打包应用和实现 1)安装webpack $ npm install webpack webpack-cli --save-dev 2)添加配置文件 webpack.config.js 3 ...

  4. tcpdump的使用以及参数详解

    平时分析客户端和服务器网络交互的问题时,很多情况下需要在客户端和服务器抓包分析报文.一般win下抓包使用WireShark即可,但是linux下就需要用到tcpdump了,下面是一些对于tcpdump ...

  5. java有参无参构造器的的执行顺序

    这里拿了用数组构造栈的一段代码说明一下 public class StackArray<E> { private Object[] data = null; private int max ...

  6. 【转载】How to Reset USB Device in Linux

    USB devices are anywhere nowadays, even many embedded devices replace the traditional serial devices ...

  7. hadoop 2.6.0 分布式 + Spark 1.1.0 集群环境

    配置jdk 执行 sudo apt-get install openjdk-7-jdk jdk被安装到了 /usr/lib/jvm/ 目录 配置hosts 使用 vim 打开 /etc/hosts, ...

  8. Javascript四种调用模式中的this指向

    第一种:函数直接调用执行的模式 function add(a,b){ console.log(this); return a+b; } add(,) //this===window 这里的this指向 ...

  9. SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中

    第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表) insert into B数据库.dbo.B表 select * from A数据库. ...

  10. BZOJ 4289: PA2012 Tax(最短路)

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 755  Solved: 240[Submit][Status][Discuss] Descriptio ...