• where方法的用法是ThinkPHP查询语言的精髓


    where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。

    字符串条件

    使用字符串条件直接查询和操作,例如:

    1. $User = M("User"); // 实例化User对象
    2. $User->where('type=1 AND status=1')->select();

    最后生成的SQL语句是

    1. SELECT * FROM think_user WHERE type=1 AND status=1

    如果使用3.1以上版本的话,使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如:

    1. $Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();

    或者使用:

    1. $Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

    如果$id变量来自用户提交或者URL地址的话,如果传入的是非数字类型,则会强制格式化为数字格式后进行查询操作。

    字符串预处理格式类型支持指定数字、字符串等,具体可以参考vsprintf方法的参数说明。

    数组条件

    数组条件的where用法是ThinkPHP推荐的用法。

    大理石平台厂家

    普通查询

    最简单的数组查询方式如下:

    1. $User = M("User"); // 实例化User对象
    2. $map['name'] = 'thinkphp';
    3. $map['status'] = 1;
    4. // 把查询条件传入查询方法
    5. $User->where($map)->select();

    最后生成的SQL语句是

    1. SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
    表达式查询

    上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,查询表达式的使用格式:

    1. $map['字段1'] = array('表达式','查询条件1');
    2. $map['字段2'] = array('表达式','查询条件2');
    3. $Model->where($map)->select(); // 也支持

    表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

    表达式含义
    EQ 等于(=)
    NEQ 不等于(<>)
    GT 大于(>)
    EGT 大于等于(>=)
    LT 小于(<)
    ELT 小于等于(<=)
    LIKE 模糊查询
    [NOT] BETWEEN (不在)区间查询
    [NOT] IN (不在)IN 查询
    EXP 表达式查询,支持SQL语法

    多次调用

    3.1.3版本开始,where方法支持多次调用,但字符串条件只能出现一次,例如:

    1. $map['a'] = array('gt',1);
    2. $where['b'] = 1;
    3. $Model->where($map)->where($where)->where('status=1')->select();

    多次的数组条件表达式会最终合并,但字符串条件则只支持一次。

    更多的查询用法,可以参考查询语言部分。

  • 相关阅读:
    PHP+MySQL存储数据出现中文乱码的问题
    IE和火狐的css兼容性问题
    JS调用Webservice
    NET-使用Js调用WebService
    ASP.NET 与 Ajax 的实现方式
    未能加载文件或程序集“System.Web.Extensions, Version=1.0.61025.0, Culture=neutral
    c#webservice的简单示例
    HttpRequest Get和Post调用其他页面的方法
    MYSQL 递归操作
    sql with as 用法
  • 原文地址:https://www.cnblogs.com/furuihua/p/11792468.html
Copyright © 2020-2023  润新知