ThinkPhp sql语句执行方法
2024-09-08 08:22:39
ThinkPHP内置的ORM和ActiveRecord模式实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持,为了满足复杂查询的需要和一些特殊的数据操作,SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理。
主要包括下面两个方法:
1、query方法
query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。
使用示例:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表
$Model->query("select * from think_user where status=1");
如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。
可以在query方法中使用表名的简化写法,便于动态更改表前缀,例如:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表
$Model->query("select * from __PREFIX__user where status=1");
// 3.2.2版本以上还可以直接使用
$Model->query("select * from __USER__ where status=1");
和上面的写法等效,会自动读取当前设置的表前缀。
2、execute方法
execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。
使用示例:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表
$Model->execute("update think_user set name='thinkPHP' where status=1");
如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
也可以在execute方法中使用表名的简化写法,便于动态更改表前缀,例如:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表
$Model->execute("update __PREFIX__user set name='thinkPHP' where status=1");
// 3.2.2版本以上还可以直接使用
$Model->execute("update __USER__ set name='thinkPHP' where status=1");
和上面的写法等效,会自动读取当前设置的表前缀。
摘自:ThinkPHP3.2完全开发手册
最新文章
- 使用Starling 框架时,报错Error: Error #3669: 输入大小错误, 解决方案
- BZOJ4110 : [Wf2015]Evolution in Parallel
- 1 HTML
- uva439 - Knight Moves(BFS求最短路)
- const,readonly,static
- 查找被锁对象的名称、sid,锁定的类型-1123
- H - Pots
- BZOJ1653: [Usaco2006 Feb]Backward Digit Sums
- Scala减少代码重复
- 通过href链接实现从当前页面跳转到动态页的指定页面的实现方式
- 小程序配置tabbar
- LeetCode(117):填充同一层的兄弟节点 II
- python 3.6 + numpy + matplotlib + opencv + scipy 安装
- Orders matters: seq2seq for set 实验
- 国产的骄傲,Deepin发布v15.9
- 四维动规 洛谷P1004方格取数
- 配置嵌入式Servlet容器
- ubuntu-docker入门到放弃(二)docker初探(基本用法及命令)
- 跟着未名学 - 免费录屏工具ActivePresenter
- HP P2xxx/MSA SMI-S Provider
热门文章
- 关于一个指针的题目解析(a,&;a,(int*)&;a,(int*)((char*)&;a + 4))
- Linux使用storcli工具查看服务器硬盘和raid组信息
- 取消任务(Task)
- 第11章 Spring Boot使用Actuator
- Python 学习第一天(二)python 入门
- R树-javascript代码实现过程分析(插入操作)
- AutoFac控制反转
- ${filename}用法二:
- hive日期函数-原生函数(二)
- 修改mysql5.7数据表字符集编码的命令