一般处理过程:

模型进行数据操作,继承自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

经常使用查询方法

以下是三种查询方式

  1. function actionCeshi(){
  2. $model = Goods::model();
  3.  
  4. //$infos = $model -> findAllByPk(10);
  5. //$infos = $model -> findAllByPk(array(1,5,12));
  6. //////////////////////////////////////////////////////////////////////////////////////////
  7.  
  8. //findAll($condition,$param)
  9. //$condition 就是sql语句的where条件
  10. //查询诺基亚手机而且价格大于500元
  11. //$infos = $model -> findAll("goods_name like '诺%' and goods_price>500");
  12. //为了避免sql注入的安全问题。sql语句里边最好不要直接写条件信息
  13. //$infos = $model -> findAll("goods_name like :name and goods_price>:price",array(':name'=>'诺%',':price'=>500));
  14. //////////////////////////////////////////////////////////////////////////////////////////
  15.  
  16. //有的时候我们查询信息,
  17. //想要查询详细的"字段" select
  18. //想要查询详细的"条件" condition
  19. //想要查询详细的"排序" order
  20. //想要查询详细的"分组" group
  21. //想要查询详细的"限制" limit
  22. //想要查询详细的"偏移量" offset
  23.  
  24. //$infos = $model -> findAll(array(
  25. // 'select'=>'goods_name,goods_price',
  26. // 'condition'=>"goods_name like '诺%'",
  27. // 'order'=>'goods_price desc',
  28. // 'limit'=>3,
  29. // 'offset'=>6,
  30. //));
  31.  
  32. //////////////////////////////////////////////////////////////////////////////////////////
  33. //通过criteria实现信息的查询
  34. $criteria = new CDbCriteria();
  35. $criteria -> select = "goods_name,goods_price";
  36. $criteria -> condition = "goods_name like '摩%'";
  37. //$criteria -> limit = 6;
  38. $criteria -> order = "goods_price";
  39. $infos = $model -> findAll($criteria);
  40.  
  41. $this ->renderPartial('show',array('goods_infos'=>$infos));
  42.  
  43. //save()方法运行update或insert
  44. //$model -> save();
  45. }

全部控制器都继承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. CSDN开博一周年--总结、感想和未来规划

    2012年9月22日,我在CSDN发表了第1篇博文-为了忘却的纪念,我的天龙游戏生涯.本文讲述了我大学期间玩网络游戏-天龙八部的故事. 在大学期间,实际上我也有自己的帐号-huoyingfans,主要 ...

  2. url中jsessionid的理解

    (1) 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183629 ...

  3. nodejs 中使用 ftp

    转自原文 nodejs 中使用 ftp 1.  npm install ftp 项目 https://github.com/mscdex/node-ftp 2.  转自 http://www.open ...

  4. dubbo标签

    <dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心. <dubbo:reference/&g ...

  5. [React] Understanding setState in componentDidMount to Measure Elements Without Transient UI State

    In this lesson we'll explore using setState to synchronously update in componentDidMount. This allow ...

  6. 从零開始学android&lt;TabHost标签组件.二十九.&gt;

    TabHost主要特点是能够在一个窗体中显示多组标签栏的内容,在Android系统之中每一个标签栏就称为一个Tab.而包括这多个标签栏的容器就将其称为TabHost.TabHost类的继承结构例如以下 ...

  7. Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件

    学了一阵子Python,拿来做个什么有意思的东西呢?爬糗百好了.爬到的内容,邮件分发出去. 然后又啃了两天的wxpython,做了个简易的邮件管理界面,能够在这里添加或者删除邮件,而且一键爬虫发送. ...

  8. bzoj1045: [HAOI2008] 糖果传递(数论)

    1045: [HAOI2008] 糖果传递 题目:传送门(双倍经验3293) 题解: 一开始想着DP贪心一顿乱搞,结果就GG了 十分感谢hzwer大佬写的毒瘤数论题解: 首先,最终每个小朋友的糖果数量 ...

  9. Elasticsearch yellow 意味着主分片可用,副本不可用

    摘自:http://unasm.com/2016/11/644/ 在通过 /_cluster/state 命令查看es 状态的时候,发现es 处于一个yellow的状态, 这个很奇怪,按照官方的解释, ...

  10. C#.Net版本自动更新程序及3种策略实现

    C#.Net版本自动更新程序及3种策略实现 C/S程序是基于客户端和服务器的,在客户机编译新版本后将文件发布在更新服务器上,然后建立一个XML文件,该文件列举最新程序文件的版本号及最后修改日期.如程序 ...