YII进行数据查询及类库追踪
一般处理过程:
模型进行数据操作,继承自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进行数据查询及类库追踪的更多相关文章
- Yii2 数据查询
转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...
- EF 数据查询效率对比
优化的地方: 原地址:https://www.cnblogs.com/yaopengfei/p/9226328.html ①:如果仅是查询数据,并不对数据进行增.删.改操作,查询数据的时候可以取消状态 ...
- Django models .all .values .values_list 几种数据查询结果的对比
Django models .all .values .values_list 几种数据查询结果的对比
- MVC实用架构设计(三)——EF-Code First(4):数据查询
前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
- SharePoint服务器端对象模型 之 使用CAML进展数据查询
SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列 ...
- .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)
阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...
- 6、SQL Server 数据查询
一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...
- SQL Server 的表数据简单操作(表数据查询)
--表数据查询----数据的基本查询-- --数据简单的查询--select * | 字段名[,字段名2, ...] from 数据表名 [where 条件表达式] 例: use 商品管理数据库 go ...
随机推荐
- Python3 定时访问网页
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50358695 如果我有一组网站,想要定 ...
- Revolution Platform
Revolution Platform 黑暗的极权统治现实 异类的处境 独孤的存在 觉者的形成 信仰的确立 信仰的产物 完整的思想理论 反抗与信仰的一致 反抗的超理性的智慧论 反抗的纯理性的方法论 反 ...
- Spoj 1557 Can you answer these queries II 线段树 随意区间最大子段和 不反复数字
题目链接:点击打开链接 每一个点都是最大值,把一整个序列和都压缩在一个点里. 1.普通的区间求和就是维护2个值,区间和Sum和延迟标志Lazy 2.Old 是该区间里出现过最大的Sum, Oldlaz ...
- Android recycleView的研究和探讨
RecyclerViewLibrary A RecyclerView libirary ,has some support, like headerAdapter/TreeAdapter,and Pu ...
- poj_1952最大下降子序列,统计个数
其实不算难的一道题,但憋了我好久,嗯,很爽. #include<iostream> #include<cstdio> #include<string.h> #inc ...
- Binary operations #1
https://www.codewars.com/kata/binary-operations-number-1/train/csharp Your work is to write a method ...
- ios学习--第三方框架-MBProgressHUD以及扩展
MBProgressHUD提示框官网地址:https://github.com/jdg/MBProgressHUD 一. 模式 首先, MBProgressHUD有以下几种视图模式. typedef ...
- ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用
索引模板 扩容设计 » 索引模板 Elasticsearch 不要求你在使用一个索引前创建它. 对于日志记录类应用,依赖于自动创建索引比手动创建要更加方便. Logstash 使用事件中的时间戳来生成 ...
- Java多线程编程模式实战指南(二):Immutable Object模式--转载
本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-o ...
- (转)js document.all的用法
document.all用法 一. document.all是页面内所有元素的一个集合.例如: document.all(0)表示页面内第一个元素 二.document.all可以判断浏览器 ...