• YII进行数据查询及类库追踪


    一般处理过程:


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

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

    文件路径AR  : frameworkdbarCActiveRecord.php

    能够看到非常多方法


    打开findAll函数进行类库追踪到  这个frameworkdbschemaCDbCommandBuilder.php 文件

    再次进行追踪到这个文件frameworkdbschemaCDbCriteria.php:

    为什么这样追踪:

    1


    2


    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在哪了?



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

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

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


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

    答:在统一入口处index.php





  • 相关阅读:
    JAVA中的类和对象
    JAVA方法
    JAVA数组
    JAVA流程控制语句
    JAVA常用的运算符
    JAVA中的变量和常量
    JAVA安装及环境变量配置
    linux环境下配置jmeter环境变量
    linux环境下解压文件
    安装程序遇到错误0x80240037
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6973384.html
Copyright © 2020-2023  润新知