php 怎么写原生sql,thinkphp 原生sql 怎么写?
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 怎么写?相关推荐
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...
- SQL Server2016 原生支持JSON
SQL Server2016 原生支持JSON SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML 索引以及各种管理 XML 或输出 XML 格式的函数. ...
- 链式写法php,ThinkPHP框架SQL操作链式写法原理
下面给大家介绍ThinkPHP框架SQL操作链式写法原理,希望对需要的朋友有所帮助! 引言 大家如果有面试几次不难发现,虽然国产的TP一直被人诟病.但是丝毫不能影响它在广大企业中的开发受到青睐,强大的 ...
- 记一个自认为写得有点复杂的sql语句
记一个自认为写得有点复杂的sql语句,含义是跨3张表的select: select table_name,column_name,data_type,data_length,data_scale fr ...
- linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
1:问题故障描述 因为在linux下开发,所以修改mysql字段的时,用的phpmyadmin来直接修改生成修改后的sql,然后复制进word(libreoffice)后提交到项目管理系统, 同事发到 ...
- sql 写query_为什么需要动态SQL
为什么需要动态SQL 在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件:如果客户没填,则返回所有数据. 我常常看到很多人解决这类问题时使用了错 ...
- Sql Server 优化 SQL 查询:如何写出高性能SQL语句
1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...
- 在Oracle中写出性能优良的SQL语句
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器 ...
- 如何写好 5000 行的 SQL 代码
点击蓝色"有关SQL"关注我哟 加个"星标",天天与6000人一起快乐成长 上千行的 SQL 代码常见,且永不过时! 经历了大大小小的 MIS 系统,小到几人用 ...
最新文章
- C# C/S系统软件开发平台架构图(原创)
- Oracle增加修改删除字段/主键
- MDCC 2016:网易云信直击移动IM之痛
- 学习 protobuf(一)—— ubuntu 下 protobuf 2.6.1 的安装
- 【Javascript 拾遗之三】Closure 闭包
- JS数组的需要注意的问题
- c#如何实现叫号操作_微信预约排队叫号系统操作指南
- Java核心技术卷I基础知识1.2.7 可移植性
- matlab anova 如何不画图,方差分析的数据处理和作图
- 2021年中国车轮电机市场趋势报告、技术动态创新及2027年市场预测
- 玩转容器,首先你得登上青云梯
- win7下面用超级终端不能输入命令原因
- 二阶无源低通滤波器幅频特性曲线_几种无源滤波器的电路及频响特性对比
- python 移动/剪切文件
- MagicDraw-用例图
- Python全栈工程实践
- 华为云学院 华为物联网平台
- C#System.Text.RegularExpressions.Regex使用
- html对象转换为字符串,如何使用JavaScript将对象转换为字符串?
- 计算机无法获取正常的ip地址,无法获取ip地址,教您电脑无法获取ip地址的解决方法...
热门文章
- Bug错误openssl_encrypt()
- Swoole同步/异步/阻塞/非阻塞的理解
- redis 内存不足 排查_一文深入了解 Redis 内存模型,Redis 的快是有原因的!
- vmware虚拟机linux 桥接,linux之使用VMWare的桥接模式使主机和虚拟机中系统进行通讯...
- cmd中操作mysql_Windows中cmd操作mysql
- rffc2071_基于 RFFC2071的变频器设计
- iw命令 linux 没有_linux下ifconfig、iwconfig、iwlist命令详解
- 华中C语言程序简答题,华中科技大学0911年C语言程序设计试卷.doc
- mysql rpm conflict_解决centos7 yum安装MySQL rpm包出现conflict problem
- JSP EL 表达式取request parameter