TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要区分两个方法呢,原因有两个:

1、返回类型不同

query用于查询,返回的是数据集,和select或者findall一样,所以可以直接在模板里面使用volist标签输出query的查询结果

execute用于写操作,返回的是状态或者影响的记录数

2、读写统计需要

为了便于统计当前的数据读写次数,把数据库的读和写操作分开(对应的就是query和execute)

使用原生SQL很简单,我们甚至不需要实例化任何的模型,例如:

$Model = new Model(); // 实例化一个空模型

下面的方法是等效的

$Model = D(); 或者 $Model = M();

// 下面执行原生SQL操作

$Model->query('select * from think_user where status=1');

$Model->execute('update think_user set status=1 where id=1');

如果你实例化了某个模型,仍然可以执行原生SQL操作,不受影响,例如:

$User = D('User');

$User->query('select * from think_user where status=1');

$User->execute('update think_user set status=1 where id=1');

在这种情况下面,我们可以简化SQL语句的写法,例如:

$User->query('select * from __TABLE__ where status=1');

$User->execute('update __TABLE__ set status=1 where id=1');

系统会自动把__TABLE__替换成当前模型对应的数据表名称,实际的数据表由模型决定。

通常来说,我们都是使用原生SQL操作实现一些ORM和CURD比较难实现的操作,另外,如果SQL不复杂的话 原生SQL的效率和连贯操作的效率差别是微乎其微的,TP本身的ORM实现也是相当高效的。

更多的 相关教程 可以 到 我要学it网  获取

追问

这句在$ordertimer的地方 我用数字试过了,可以运行,但是用$ordertime这个变量 就执行不了,我是问ordertime = $ordertime 这部分怎么表达才对

php 怎么写原生sql,thinkphp 原生sql 怎么写?相关推荐

  1. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...

    C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...

  2. SQL Server2016 原生支持JSON

    SQL Server2016 原生支持JSON SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML 索引以及各种管理 XML 或输出 XML 格式的函数. ...

  3. 链式写法php,ThinkPHP框架SQL操作链式写法原理

    下面给大家介绍ThinkPHP框架SQL操作链式写法原理,希望对需要的朋友有所帮助! 引言 大家如果有面试几次不难发现,虽然国产的TP一直被人诟病.但是丝毫不能影响它在广大企业中的开发受到青睐,强大的 ...

  4. 记一个自认为写得有点复杂的sql语句

    记一个自认为写得有点复杂的sql语句,含义是跨3张表的select: select table_name,column_name,data_type,data_length,data_scale fr ...

  5. linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.

    1:问题故障描述 因为在linux下开发,所以修改mysql字段的时,用的phpmyadmin来直接修改生成修改后的sql,然后复制进word(libreoffice)后提交到项目管理系统, 同事发到 ...

  6. sql 写query_为什么需要动态SQL

    为什么需要动态SQL 在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件:如果客户没填,则返回所有数据. 我常常看到很多人解决这类问题时使用了错 ...

  7. Sql Server 优化 SQL 查询:如何写出高性能SQL语句

    1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...

  8. 在Oracle中写出性能优良的SQL语句

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器 ...

  9. 如何写好 5000 行的 SQL 代码

    点击蓝色"有关SQL"关注我哟 加个"星标",天天与6000人一起快乐成长 上千行的 SQL 代码常见,且永不过时! 经历了大大小小的 MIS 系统,小到几人用 ...

最新文章

  1. C# C/S系统软件开发平台架构图(原创)
  2. Oracle增加修改删除字段/主键
  3. MDCC 2016:网易云信直击移动IM之痛
  4. 学习 protobuf(一)—— ubuntu 下 protobuf 2.6.1 的安装
  5. 【Javascript 拾遗之三】Closure 闭包
  6. JS数组的需要注意的问题
  7. c#如何实现叫号操作_微信预约排队叫号系统操作指南
  8. Java核心技术卷I基础知识1.2.7 可移植性
  9. matlab anova 如何不画图,方差分析的数据处理和作图
  10. 2021年中国车轮电机市场趋势报告、技术动态创新及2027年市场预测
  11. 玩转容器,首先你得登上青云梯
  12. win7下面用超级终端不能输入命令原因
  13. 二阶无源低通滤波器幅频特性曲线_几种无源滤波器的电路及频响特性对比
  14. python 移动/剪切文件
  15. MagicDraw-用例图
  16. Python全栈工程实践
  17. 华为云学院 华为物联网平台
  18. C#System.Text.RegularExpressions.Regex使用
  19. html对象转换为字符串,如何使用JavaScript将对象转换为字符串?
  20. 计算机无法获取正常的ip地址,无法获取ip地址,教您电脑无法获取ip地址的解决方法...

热门文章

  1. Bug错误openssl_encrypt()
  2. Swoole同步/异步/阻塞/非阻塞的理解
  3. redis 内存不足 排查_一文深入了解 Redis 内存模型,Redis 的快是有原因的!
  4. vmware虚拟机linux 桥接,linux之使用VMWare的桥接模式使主机和虚拟机中系统进行通讯...
  5. cmd中操作mysql_Windows中cmd操作mysql
  6. rffc2071_基于 RFFC2071的变频器设计
  7. iw命令 linux 没有_linux下ifconfig、iwconfig、iwlist命令详解
  8. 华中C语言程序简答题,华中科技大学0911年C语言程序设计试卷.doc
  9. mysql rpm conflict_解决centos7 yum安装MySQL rpm包出现conflict problem
  10. JSP EL 表达式取request parameter