sql操作:
使用字符串作为条件查询
var_dump(
user−>where(‘id=1ANDuser=”蜡笔小新”′)−>select());使用索引数组作为查询条件
condition[‘id’] = 1;
condition[‘user′]=‘蜡笔小新′;vardump(
user->where(
condition)−>select());索引数组查询的默认逻辑关系是AND,如果想改变为OR,可以使用logic定义查询逻辑。
condition[‘_logic’] = ‘OR’;
使用对象方式来查询
user=M(‘User′);
condition = new \stdClass();
condition−>id=1;
condition->user = ‘蜡笔小新’;
var_dump(
user−>where(
condition)->select());
PS:stdClass 类是 PHP 内置的类,可以理解为一个空类,在这里可以理解为把条件的
字段作为成员保存到 stdClass 类里。而这里的’\’是将命名空间设置为根目录,否则会导
致当前目录找不到此类。使用对象和数组查询,效果是一样的,可以互换。在大多数情况下,
ThinkPHP 推荐使用数组形式更加高效。
表达式查询:
//[NOT]LIKE:模糊查询
map[‘user′]=array(‘notlike′,‘//[NOT]LIKE:模糊查询的数组方式
map[‘user’] = array(‘like’, array(‘%小%’, ‘%蜡%’), ‘AND’);
//EXP:自定义
$map[‘id’] = array(‘exp’,’in (1,2,4)’);
//where 为id
NOT IN (‘1’,’2’,’4’)
PS:使用 exp 自定义在第二个参数直接写 where 语句即可
//EXP:自定义增加 OR 语句
map[‘id′]=array(‘exp′,‘=1′);
map[‘user’] = array(‘exp’, ‘=”蜡笔小新”’);
$map[‘_logic’] = ‘OR’;
//WHERE 为( (id
=1) ) OR ( (user
=”蜡笔小新”) )
快捷查询
不同字段相同查询条件
//使用相同查询条件
user=M(‘User′);
map[‘user|eemail’] = ‘a’; //’|’换成’&’变成AND
var_dump(
user−>where(
map)->select());
不同字段不同查询条件
//使用不同查询条件
user=M(‘User′);
map[‘id&user’] = array(1,’蜡笔小新’,’_multi’=>true);
var_dump(
user−>where(
map)->select());
PS:设置’_multi’为 true,是为了让 id 对应 1,让 user 对应’蜡笔小新’,否则就
会出现 id 对应了 1 还要对应’蜡笔小新’的情况。而且,这设置要在放在数组最后。