今天呢,我们开始学习ThinkPHP的第三章,查询语言!ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,主要涉及到where方法等连贯操作即可,无论是采用什么数据库,你几乎采用一样的查询方法
(个别数据库例如Mongo在表达式查询方面会有所差异),系统帮你解决了不同数据库的差异性,因此我们把框架的这一查询方式称之为查询语言。查询语言也是ThinkPHP框架的ORM亮点,让查询操作更加简单易懂。
需 掌 握 的 内 容
如何进行数据的查询,包括简单查询、表达式查询、快捷查询、区间查询、统计查询,以及如何进行子查询操作。
使 用 字 符 串 作 为 查 询 条 件
这是最传统的方式,但是安全性不高,首先我们需要创建一个think_user表,字段为id,type,name,staus.插入一个内容
我们还在home模块里边测试
上边的前两行即相当于SQL语句SELECT * FROM think_user WHERE type=1 AND status=1,查询出来为一个二维数组
使 用 数 组 作 为 查 询 条 件
这种方式是最常用的查询方式
以上条件相当于SQL语句SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'。
使 用 对 象 方 式 来 查 询
以上相当于SQL语句SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1。使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效。
表 达 式 查 询
查询表达式的使用格式:$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
EQ :等于(=):
$map['id'] = array('eq',100),和下面的查询等效$map['id'] = 100。
这里只用EQ做一个实例,其余的我相信大家很聪明一定也就明白了。
在举一个模糊查询的例子,也许大家不是很清楚
LIKE: 同sql的LIKE:
$map['name'] = array('like','thinkphp%'),查询条件就变成 name like 'thinkphp%'。
EXP:表达式,支持更复杂的查询情况:
$map['id'] = array('in','1,3,8');可以改成:$map['id'] = array('exp',' IN (1,3,8) ');
exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。
快 捷 查 询
采用快捷查询方式,可以进一步简化查询条件的写法 :
实现不同字段相同的查询条件
我们查询的是type或者status是1的相当于SQL语句中的type= '1' OR status = '1'。
实现不同字段不同的查询条件
'_multi'=>true必须加在数组的最后,表示当前是多条件匹配.
领取专属 10元无门槛券
私享最新 技术干货