thinkphp 学习笔记

来源:互联网 发布:mac无法拖动文件夹 编辑:程序博客网 时间:2024/06/06 03:01

sql操作:
使用字符串作为条件查询
var_dump(user>where(id=1ANDuser=)>select());使condition[‘id’] = 1;
condition[user]=;vardump(user->where(condition)>select());ANDOR使logiccondition[‘_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]LIKEmap[‘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 还要对应’蜡笔小新’的情况。而且,这设置要在放在数组最后。

0 0