• ThinkPHP框架 _ 学习11


    【各种查询条件设置】

    $obj = D();  创建对象  *:这里没有指定具体的参数,所以在访问的时候是可以选择数据表来进行操作的

    $obj -> select();  查询数据

    select  字段,字段  from  表名  where 条件  group 字段 having  条件   order 排序  limit 限制条数;

    SELECT%DISTINCT%%FIELD%FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%%LIMIT% %UNION%%COMMENT%

    $obj -> field(字段,字段);  查询指定字段

    $obj -> table(数据表);   设置具体操作数据表

    $obj -> where(参数);   参数就是正常sql语句where后边的条件信息

    例如:( “goods_price >100 and  goods_name like ‘%’”)

    $obj -> group(字段);  根据字段进行分组查询

    $obj -> having(参数条件);  having 条件设置

    $obj -> order(‘price  desc/asc’)  排序查询

    $obj -> limit([偏移量,]条数)  限制查询的条数

    *这些方法的返回值都是$this,所以是可以进行连贯的操作的,不需要 一一执行;

     另外,在执行这些操作的语句的时候,需要创建一个对象来接收数据($info)

    sql语句里边具体的条件设置在tp框架model模型里边体现为具体的方法操作

    以上方法理论上是父类Model的对应方法

    父类model具体存在方法:   field()  where()   limit()

    还有一些方法在__call()自动调用函数里边: table()  group()  order()  having()

    在__call()魔术方法里边会判断当前的执行方法是否是一个method属性的元素信息,如果存在就会执行执行

    以上多个方法是同时使用多个进行条件显示(并且没有顺序要求)

    $obj -> limit(5)->field(‘id,name’)->order(‘price asc’) -> table(‘sw_goods’)->select();

    以上许多方法执行没有顺序要求,许多方法执行后都是把具体的参数赋予到model属性options里边,最后根据options拼装sql语句。

    select()原理的追踪

    总结:

    1. config.php做数据库连接配置convertion.php
    2. 制作model模型文件
    3. 实例化model模型对象

    a) new  命名空间类名

    b) D([模型标志]);

    c) M([模型标志]);  

    1. 数据查询select()
    2. 各种查询条件设置方法
    3. smarty模板引擎切换(Behavior行为里边的配置变量)

    补充:

    看到好多ecshop的模板文件中 都有{literal}{/literal} 标签的影子,该标签一般都是把js 包含起来,一直不知道是什么作用,或者这样写有什么含义。找了半天才现在,他的真真作用,还是学习不到位啊。

    literal 标签是在smarty中的存在的,这就能理解为什么会出现在ecshop中了。smarty会把所有的{}都当成是自己的程序,我们在js中如果想定义一个函数的话就会用到{}  。smarty一编译就把js中定义函数的{}当做自己的东西来编译。这样就可能出现问题了。为了解决这个问题,于是诞生了{literal}标签。

    也可以这样理解:iteral 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.(转)

  • 相关阅读:
    golang mod 导包
    grpc client 报错: code = Unimplemented desc = method *** not implemented
    golang读取email
    docker 使用
    在word中批量更改Mathtype公式的格式
    word中插入myth type公式行距变大的问题
    word中编辑论文公式对齐问题
    向别人学习
    机器学习 博文汇总
    matlab中如何用rand产生相同的随机数
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/6737660.html
Copyright © 2020-2023  润新知