ThinkPHP!学习打卡第三天

今天呢,我们开始学习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必须加在数组的最后,表示当前是多条件匹配.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180211G17JRZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券