<? php namespace Home\Controller; use Think\Controller; use Think\Model; class UserController extends Controller { public function model() { $user = M(‘User‘ ); var_dump ( $user ->where(‘id=1‘)-> select()); } }
这是最基本的调用方法,更详细点则是
var_dump ( $user ->where(‘id=1 and user = "蜡笔小新"‘)->select());
二、下面介绍 数组查询方法 :
就是将 var_dump ( $user ->where(‘id=1‘)->select()); 这行用下面的代码替换
$condition [‘id‘]=1 ; $condition [‘user‘]="蜡笔小新" ; var_dump ( $user ->where( $condition )->select());
这时使用调试工具在浏览器中看到的是:
这时使用where默认的是ADN,如果想换成OR的话,再加上一条语句即可:
$condition [‘_logic‘]=‘or‘;
三、使用对象查询
同样将 var_dump ( $user ->where(‘id=1‘)->select()); 用下列代码替换:
$condition = new \stdClass(); $condition ->id=1 ; $condition ->user = ‘蜡笔小新‘;
PS:stdClass 类是 PHP 内置的类,可以理解为一个空类,在这里可以理解为把条件的
字段作为成员保存到 stdClass 类里。而这里的‘\‘是将命名空间设置为根目录,否则会导
致当前目录找不到此类。使用对象和数组查询,效果是一样的,可以互换。在大多数情况下,
ThinkPHP 推荐使用数组形式更加高效。
下面介绍 表达式查询
对于那些要实现模糊判断的查询,比如大于、等于、小于之类的SQL查询,可以使用表达式查询方式。
查询表达式格式:$map[‘字段名‘] = array(‘表达式‘,‘查询条件‘);
表达式查询
表达式 含义 EQ 等于(=) NEQ 不等于(<>) GT 大于(>) EGT 大于等于(>=) LT 小于(<) ELT 小于等于(<=) [NOT]LIKE 模糊查询 [NOT] BETWEEN (不在)区间查询 [NOT] IN (不在)IN查询 EXP 表达式查询,支持SQL语法在 Home/controller/UserController. class .php 中插入以下代码进行查询:
$user = M(‘User‘ ); $map [‘id‘] = array (‘eq‘,1 ); var_dump ( $user ->where( $map )->select());
查询id=1的数据;
从EQ到ELT的只需要改变array(‘eq‘,1)中的eq就行,
这是like 模糊查询的方式:
$map [‘user‘] = array (‘like‘,‘%小%‘); 查询用户名中带有[小]的数据,
$map [‘user‘] = array (‘notlike‘,‘%小%‘); 查询用户名中不带有[小]的数据,
$map [‘user‘] = array (‘like‘, array (‘%小%‘, ‘%蜡%‘), ‘AND‘); 查询用户名中带有[小]和"腊"的数据,这时后面加了AND,如果不加的话,默认的就是OR.
下面是between的用法:
$map [‘id‘] = array (‘between‘,‘1,3‘); 查询‘id‘在1到3之间的数据,
$map [‘id‘] = array (‘between‘, array (‘1‘,‘3‘)); 和上一句作用相同,
$map [‘id‘] = array (‘not between‘,‘1,3‘); 查询除了‘id‘不等于1到3之间的数据,这时not和between之间用空格,之前的notlike之间没空格
下面是in的用法:
$map [‘id‘] = array (‘in‘,‘1,2,4‘); 查询id为1,2,4的数据;
$map [‘id‘] = array (‘not in‘,‘1,2,4‘); 查询id不等于1,2,3的数据,且这时not和in之间也是有空格
EXP:自定义: (PS:使用 exp 自定义在第二个参数直接写 where 语句即可)
$map [‘id‘]= array (‘exp‘,‘=1‘); 查询id等于1的数据
$map [‘id‘] = array (‘exp‘,‘in (1,2,4)‘); 查询id为1,2,4的数据;
$map [‘id‘] = array (‘exp‘, ‘=1‘ ); $map [‘user‘] = array (‘exp‘, ‘="蜡笔小新"‘ ); $map [‘_logic‘] = ‘OR‘ ; // WHERE 为( (`id` =1) ) OR ( (`user` ="蜡笔小新") )
SQL查询语句
标签: