PHP3.2.3 where or,WHERE · ThinkPHP3.2.3完全开发手册 · 看云
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。
## 字符串条件
使用字符串条件直接查询和操作,例如:
~~~
$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();
~~~
最后生成的SQL语句是
~~~
SELECT * FROM think_user WHERE type=1 AND status=1
~~~
使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如:
~~~
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
~~~
或者使用:
~~~
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
~~~
如果`$id`变量来自用户提交或者URL地址的话,如果传入的是非数字类型,则会强制格式化为数字格式后进行查询操作。
字符串预处理格式类型支持指定数字、字符串等,具体可以参考vsprintf方法的参数说明。
## 数组条件
数组条件的where用法是ThinkPHP推荐的用法。
##### 普通查询
最简单的数组查询方式如下:
~~~
$User = M("User"); // 实例化User对象
$map['name'] = 'thinkphp';
$map['status'] = 1;
// 把查询条件传入查询方法
$User->where($map)->select();
~~~
最后生成的SQL语句是
~~~
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
~~~
##### 表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,查询表达式的使用格式:
~~~
$map['字段1'] = array('表达式','查询条件1');
$map['字段2'] = array('表达式','查询条件2');
$Model->where($map)->select(); // 也支持
~~~
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
| 表达式 | 含义 |
|-----|-----|
| EQ | 等于(=) |
| NEQ | 不等于(<>) |
| GT | 大于(>) |
| EGT | 大于等于(>=) |
| LT | 小于(
| ELT | 小于等于(<=) |
| LIKE | 模糊查询 |
| [NOT] BETWEEN | (不在)区间查询 |
| [NOT] IN | (不在)IN 查询 |
| EXP | 表达式查询,支持SQL语法 |
## 多次调用
where方法支持多次调用,但字符串条件只能出现一次,例如:
~~~
$map['a'] = array('gt',1);
$where['b'] = 1;
$Model->where($map)->where($where)->where('status=1')->select();
~~~
多次的数组条件表达式会最终合并,但字符串条件则只支持一次。
更多的查询用法,可以参考[查询语言](1766)部分。
PHP3.2.3 where or,WHERE · ThinkPHP3.2.3完全开发手册 · 看云相关推荐
- php tp3 操作绑定到类,操作绑定到类 · ThinkPHP3.2.3完全开发手册 · 看云
## 定义 ThinkPHP3.2版本提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更细化,可以设置参数**ACTION_BIND_CLASS**,例如: ~~~ 'ACTION_BIND ...
- php sae,SAE · ThinkPHP3.2.3完全开发手册 · 看云
## SAE介绍 Sina App Engine(简称**SAE**)是新浪研发中心开发的国内首个公有云计算平台,是新浪云计算战略的核心组成部分,作为一个简单高效的分布式Web服务开发.运行平台越来越 ...
- 数据缓存 php,数据缓存 · ThinkPHP3.2.3完全开发手册 · 看云
在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如: ## 缓存初始化 ~~~ // 缓存初始化 S(array('type ...
- think php 3.3.3看云,入口文件 · ThinkPHP3.2.3完全开发手册 · 看云
ThinkPHP采用**单一入口模式**进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口. 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的. # ...
- php tp3.2 添加表内容,数据创建 · ThinkPHP3.2.3完全开发手册 · 看云
在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: ~~~ // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['ema ...
- php 5.2 thinkphp 3.2.2 cache,查询缓存-ThinkPHP3.2.3完全开发手册
对于及时性要求不高的数据查询,我们可以使用查询缓存功能来提高性能,而且无需自己使用缓存方法进行缓存和获取. 查询缓存功能支持所有的数据库,并且支持所有的缓存方式和有效期. 在使用查询缓存的时候,只需要 ...
- think php union,UNION -ThinkPHP3.2.3完全开发手册 | AnSpoon.Com
UNION操作用于合并两个或多个 SELECT 语句的结果集. 使用示例: $Model->field('name') ->table('think_user_0') ->union ...
- php手册3.1,thinkphp3.1手册下载|thinkphp3.1手册(thinkphp3.1开发手册chm版下载)_星星软件园...
thinkphp3.1开发手册是为thinkphp用户打造的辅助工具,可以方便用户了解phpthinkphp的基本环境要求.配置步骤等,同时还包含了丰富的函数和类库.模型等,有需要的用户欢迎下载. 包 ...
- Thinkphp3.2.3安全开发须知
0x00 简介 阅读须知 1, 本文所用框架是官方Thinkphp3.2.3 2, 本文所举例子并不关TP这个框架什么事情,也没有吐槽TP的意思,只是单纯的希望帮助使用TP的开发者更好的认识这框架,能 ...
最新文章
- python根据二叉树的前序遍历和中序遍结果历重建二叉树
- ThinkPHP的安装
- [转载]读塔莎奶奶的美好生活
- WINCE6补丁安装
- Linux查看进程并重启服务命令
- 从 ES 规范 中理解 this
- laravel 数据填充
- nodejs+express- http 访问本地json数据
- 【Windows】win10电脑Miracast投屏到电视
- 数据结构视频教程 清华大学严蔚敏主讲 全48讲完整版asf格式
- 机理与机制的含义与区别
- 计算机刻录机无法显示,电脑不识别刻录机是为什么
- Leetcode 题解-59题
- 京峰网站架构,上线流程
- js 对象动态添加/设置属性名和属性值
- 经验:MathType公式在Word中显示不全的解决办法
- ar1220e-s虚拟服务器,华为路由器AR1220E-S和华为AP3010 FIT模式与openportal对接教程
- 浅谈电缆行业MES系统解决方案
- 不要再把 pp 写成 % 了。
- 喜欢在计算机教室上课,计算机教室上课规则
热门文章
- 前端学习(3030):vue+element今日头条管理-顶部导航栏布局
- [html] iframe父页面如何获取子页面的元素?
- [html] 请说说input的inputmode属性有什么应用场景?
- [html] HTML5的video在手机端如何实现进来页面时就自动播放?
- 前端学习(2821):windows上配置tabber字段
- oracle之单行函数之分组函数之课后练习
- 实例26:python
- Vue项目 开启gzip
- javascript二维数组转置_精通Excel数组公式010:认识数组函数:TRANSPOSE、MODE.MULT和TREND...
- 洛谷 P3244 / loj 2115 [HNOI2015] 落忆枫音 题解【拓扑排序】【组合】【逆元】