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)部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P2896 [USACO08FEB]一起吃饭Eating Together 解题报告

题目传送门 题目不是很难&#xff0c;看了一会就想到了&#xff0c;但因为一些细节WA了好几遍qwq 但代码却一点一点压短了&#xff08;看了别人的精简写法&#xff09; 题目分析 把一个序列改成不上升或不下降子序列&#xff0c;求最少修改次数。 一般情况有求 LIS 和 LDS 的 O…

[html] 写出不定宽度的子级div,在相对于固定宽度的父级元素水平居中的布局

[html] 写出不定宽度的子级div&#xff0c;在相对于固定宽度的父级元素水平居中的布局 <div class"father"> <div class"son"></div> </div>.fateher { display:flex; algin-items: center; }个人简介 我是歌谣&#xff0c;欢迎…

MySQL第五天

复制表结构 1 #从src_table复制到dst_table2 CREATETABLEdst_table LIKEsrc_table;3 4 #另外一种方法5 CREATETABLEdst_table SELECT*FROMsrc_table WHERE0;6 7 #第一种方法比第二种方法简单实用效率高8 9 10 #复制表中数据11 #完全复制src_table12 CREATETABLEdet_table SELEC…

九种跨域方式实现原理

前言 前后端数据交互经常会碰到请求跨域&#xff0c;什么是跨域&#xff0c;以及有哪几种跨域方式&#xff0c;这是本文要探讨的内容。 本文完整的源代码请猛戳github 博客 一、什么是跨域&#xff1f; 1.什么是同源策略及其限制内容&#xff1f; 同源策略是一种约定&#xff0…

oracle存储过程更新权限不足,oracle创建存储过程时报权限不足

今天在自己的用的下创建了一个简单的存储过程做测试create or replace procedure hello isv_variable number(3);beginselect count(*)into v_variablefrom dual;dbms_output.put_line(‘the variable is’||v_variable);end hello;结果报错&#xff0c;我先检查了一下我用户的…

[html] 说说你对移动优先布局的理解

[html] 说说你对移动优先布局的理解 移动优先布局&#xff0c;应该是基于这样一个前提&#xff1a; 如今web页面的移动端用户量&#xff08;访问量&#xff09;要远远大于pc端等设备 所以是优先服务于移动端的 那么采用移动优先布局的策略才能最大化页面的使用 移动优先布局即…

关于TableView中图片的延时加载(转)

经常我们会用tableView显示很多条目, 有时候需要显示图片, 但是一次从服务器上取来所有图片对用户来浪费流量, 对服务器也是负担.最好是按需加载,即当该用户要浏览该条目时再去加载它的图片。重写如下方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITable…

oracle数据库视图有红叉,oracle触发器 前面的红叉是什么意思

一个触发器试图修改或查询目前正在触发器语句修改的表。建议改一下你的触发器逻辑。网上也有解释:error:ora-04091: table name is mutating, trigger/function may not see itcause:a statement executed a trigger or custom pl/sql function. that trigger/function tried t…

WinForm控件之【LinkLabel】

基本介绍 超链接标签控件&#xff0c;随处可见应用极为广泛&#xff0c;一般用作触发指定链接跳转指定页面等操作。 常设置属性、事件 ActiveLinkColor&#xff1a;用户单击超链接时超链接显示的颜色&#xff1b; LinkColor&#xff1a;超链接默认状态时显示的颜色&#xff1b;…

[html] 请使用一个div写出有三条横线的小图标

[html] 请使用一个div写出有三条横线的小图标 #menu{ width: 25px; height: 3px; border-top: 3px solid #0; border-bottom: 3px solid #0; padding: 5px 0; background-clip: content-box; background-color: #0; }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知…

WCF Basic(1)-操作重载

现网上关于WCF所谓是很多,但好书很少.Programming WCF Services 应该算是一本非常好的书。结合书和代码总结一下. 一.服务器端操作重载 1.接口本身支持重载interface ICalculator{int Add(int arg1, int arg2);double Add(double arg1, double arg2);} 2.若将此接口作为服务契约…

php cpu缓存 执行 代码,缓存PHP页面的代码,可以减轻CPU和MYSQL负担

/** 名称: 极光缓存** 作者: DCD* mail: haodan-_-b163.com** web开发群: 3574636* http://www.525ok.com** 完成日期: 2006-2-27** 版本&#xff1a;V1.00** 说明&#xff1a;** 缓存网页内容&#xff0c;减轻服务器CPU负荷&#xff0c;使用简便、灵活。* 本程序…

/etc/shadow文件

root:$6$r0DcB6cchtgqQqNP$UjLh8/5SB2ixbzLU10qYMpBP.NbOp/poyfzoGZFiEiVXO2lWABrB5SU/RWH/fDgkHzNYSKvfbbfpCZRkVBpFZ1::0:99999:7::: $6$开头的&#xff0c;表明是用SHA-512加密的 $r0DcB6cchtgqQqNP$这里中间表示盐 UjLh8/5SB2ixbzLU10qYMpBP.NbOp/poyfzoGZFiEiVXO2lWABrB5S…

[html] 使用div+css进行布局有什么好处?

[html] 使用divcss进行布局有什么好处&#xff1f; 我记得刚学的是时候&#xff0c;说最一开始用的是table去实现布局的。HTML语义标签还是挺多的&#xff0c;就是div打发好啊个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…

oracle已经有了注释符再注释,关于oracle的注释位置

以前没有注意过这个问题,今天群里的朋友问了这个问题,发上来给大家看看:创建一个文件a.sql:select * from t2 start with root_id 0 connect by prior id root_id; /*zhushi*/到sqlplus中执行:SQL> a.sql3 ;select * from t2 start with root_id 0 connect by prior id…

[html] 如何根据设备尺寸做页面自适应?

[html] 如何根据设备尺寸做页面自适应&#xff1f; Mediaquery个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Oracle分析函数六——数据分布函数及报表函数

Oracle分析函数——数据分布函数及报表函数 CUME_DIST 功能描述&#xff1a;计算一行在组中的相对位置&#xff0c;CUME_DIST总是返回大于0、小于或等于1的数&#xff0c;该数表示该行在N行中的位置。例如&#xff0c;在一个3行的组中&#xff0c;返回的累计分布值为1/3、2/3、…

Mac不装软件校验MD5和SHA1值

Mac 下校验下载的文件的方法是&#xff1a;打开 Terminal&#xff0c;即Mac 的命令行 MD5——md5&#xff1b;SHA1——shasum要校验Xcode6.4.dmg 的md5 与sha1 &#xff0c;只需要切换到对应的文件下&#xff0c;输入 &#xff1a;md5 Xcode6.4.dmg 就会输出对应的MD5 值shasum…

oracle索引使用例子,Oracle中利用函数索引处理数据倾斜案例

关于B-Tree、Bitmap、函数索引的相关内容请参考另一篇博文&#xff1a;Oracle中B-Tree、Bitmap和函数索引使用案例总结通常来说&#xff0c;索引选取的数据列最好为分散度高、选择性好。从索引树结构的角度看&#xff0c;列值都是分布在叶节点位置。这样&#xff0c;通过树结构…

[html] canvas生成图片有没有跨域问题?如果有如何解决?

[html] canvas生成图片有没有跨域问题&#xff1f;如果有如何解决&#xff1f; 前端设置 useCORS: true。后台配置允许跨域个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前…