【各种查询条件设置】

$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} 标签中时,模板引擎将不分析它们,而直接显示.(转)

转载于:https://www.cnblogs.com/zhengweizhao/p/6737660.html

ThinkPHP框架 _ 学习11相关推荐

  1. ThinkPHP框架 _ 学习3

    [路由解析] 通过url地址get参数找到指定的控制器,并进行对应方法调用请求 http://网址/index.php?m=模块名称&c=控制器&a=方法 以上url地址信息代码不够优 ...

  2. ThinkPHP框架 _ 学习5

    [视图模板与项目进行整合] 引入静态代码 引入css.image.js a) 以上3样东西,浏览器需要发送单独的http请求 b) 引入css的时候,以User控制器标志作为当前目录,显然不行 以上目 ...

  3. ALSA声卡08_从零编写之框架_学习笔记

    1.整体框架 (1)图示((DAI(全称Digital Audio Interface)接口)) 在嵌入式系统里面,声卡驱动是ASOC,是在ALSA驱动上封装的一层,包括以下三大块 (2)程序框架 m ...

  4. Scrapy框架的学习(11.scrapy框架中的下载中间件的使用(DownloaderMiddlewares))

    1.Downloader Middlewares (下载中间键):引擎会先把Requets对象交给下载中间键再然后交给Downloader 2.使用方法: (1) 编写一个Downloader Mid ...

  5. php学习(三):近几年来,不断发展的ThinkPhp框架(TP6)

    1.thinkPhp安装 6.0版本开始,必须通过compose方式下载安装和更新.(3.2 和 5.0) MVC是一种架构模式 软件系统分为三个基本部分:模型(Model).视图(View).控制器 ...

  6. 深度学习框架tensorflow学习与应用——代码笔记11(未完成)

    11-1 第十周作业-验证码识别(未完成) #!/usr/bin/env python # coding: utf-8# In[1]:import os import tensorflow as tf ...

  7. thinkphp 微信服务器验证代码_【表哥有话说 第27期】ThinkPHP框架漏洞梳理

    0x00. 前言 ThinkPHP被认为是PHP入门级框架.作为菜鸡的我,据破神经验,寒假打算系统学习一下ThinkPHP框架开发及梳理其安全问题.恰逢契机,写篇文章梳理一下ThinkPHP. 因为是 ...

  8. java ee中ssh学后感_学习SSH,SSM框架有感

    JSP/Servlet基础 许多同学学习框架的时候,往往会忽视这部分内容,有的甚至没学JSP直接学习了框架,导致基础知识不扎实,只是会用框架,最后连JSP一共有几个内置对象都不知道.自己当时学的时候也 ...

  9. 数字货币综合虚拟货币交易平台源码(基于thinkphp框架)中英文切换适合学习研究 二开

    源码简介: 数字货币合约交易源码,综合虚拟货币交易平台源码(基于thinkphp框架)中英文切换 支pc+h5 持委托交易,买卖交易市场等等功能 这个框架适合二开 好多比较好一点的交易所都是基于这个二 ...

最新文章

  1. BP神经网络公式推导及实现(MNIST)
  2. 炼个BERT别人花几分钟你花了快1天?谷歌:我这是4810亿参数的巨型BERT
  3. Grafana中多租户设置
  4. Ubuntu使用tzselect修改时区
  5. Android学习笔记篇1. 从按钮的点击事件开始
  6. Supervisor 守护 dotnetcore 程序
  7. 2012年4月18日 新的开始
  8. git pull 失败 ,提示:fatal: refusing to merge unrelated histories
  9. Python - 进程/线程相关整理
  10. 关于cad2010的激活
  11. nginx配置错误页面
  12. python期权价格计算器_使用Python自带GUI tkinter编写一个期权价格计算器
  13. 小米笔试题 风口的猪-中国牛市
  14. 深入理解Java虚拟机——Parallel Old收集器
  15. 通过hover显示子元素
  16. Framer X for Mac(交互设计工具)
  17. Python ffmpeg视频压缩
  18. Python中 list[:]与 list 的区别
  19. 移动边缘计算(MEC)促进5G发展的分析
  20. 海思平台ISP的ae的简介

热门文章

  1. QT 异步函数和同步函数交换问题
  2. Android入门学习4
  3. android——根据MVC框架设计的结构
  4. [Android开发]zip文件压缩解压缩
  5. Truncate Table 删除表内容避免产生过多日志
  6. Linux环境下查看CPU资源的命令
  7. [Java] 蓝桥杯BASIC-16 基础练习 分解质因数
  8. 2019武汉大学计算机学院拟录取,武汉大学2019年招收攻读硕士研究生复试成绩拟录取名单...
  9. opencv 的norm_OpenCV学习笔记(一)之图像金字塔-上采样与降采样与DOG
  10. Mysql like ' ' 会不会用到索引