深圳装饰公司前十强,佛山seo优化电话,wordpress用户推广,株洲企业网站建设工作where方法的用法是ThinkPHP查询语言的精髓#xff0c;也是ThinkPHP ORM的重要组成部分和亮点所在#xff0c;可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组#xff0c;虽然也可以使用对象但并不建议。##…where方法的用法是ThinkPHP查询语言的精髓也是ThinkPHP ORM的重要组成部分和亮点所在可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组虽然也可以使用对象但并不建议。## 字符串条件使用字符串条件直接查询和操作例如~~~$User M(User); // 实例化User对象$User-where(type1 AND status1)-select();~~~最后生成的SQL语句是~~~SELECT * FROM think_user WHERE type1 AND status1~~~使用字符串条件的时候建议配合预处理机制确保更加安全例如~~~$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 namethinkphp AND status1~~~##### 表达式查询上面的查询条件仅仅是一个简单的相等判断可以使用查询表达式支持更多的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(status1)-select();~~~多次的数组条件表达式会最终合并但字符串条件则只支持一次。更多的查询用法可以参考[查询语言](1766)部分。