企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。 ## 表达式查询 新版的表达式查询采用全新的方式,查询表达式的使用格式: ~~~ Db::table('think_user') ->where('id','>',1) ->where('name','thinkphp') ->select(); ~~~ 更多的表达式查询语法,可以参考[查询语法](https://www.kancloud.cn/manual/thinkphp5/135182)部分。 ## 数组条件 可以通过数组方式批量设置查询条件。 ### 普通查询 最简单的数组查询方式如下: ~~~ $map['name'] = 'thinkphp'; $map['status'] = 1; // 把查询条件传入查询方法 Db::table('think_user')->where($map)->select(); // 助手函数 db('user')->where($map)->select(); ~~~ 最后生成的SQL语句是 ~~~ SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1 ~~~ ### 表达式查询 可以在数组条件中使用查询表达式,例如: ~~~ $map['id'] = ['>',1]; $map['mail'] = ['like','%thinkphp@qq.com%']; Db::table('think_user')->where($map)->select(); ~~~ ## 字符串条件 使用字符串条件直接查询和操作,例如: ~~~ Db::table('think_user')->where('type=1 AND status=1')->select(); ~~~ 最后生成的SQL语句是 ~~~ SELECT * FROM think_user WHERE type=1 AND status=1 ~~~ 使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如: ~~~ Db::table('think_user')->where("id=:id and username=:name")->bind(['id'=>[1,\PDO::PARAM_INT],'name'=>'thinkphp'])->select() ~~~