ThinkPHP数据库常见查询幻灯片.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ThinkPHP数据库常见查询幻灯片

ThinkPHP 统计查询 avg() avg() 统计某个字段平均数据。 获取用户的平均积分例子: ThinkPHP 统计查询 sum() sum() 统计某个字段数据之和。 统计积分排名前 10 名用户的积分之和: ThinkPHP 定位查询 定位查询 ThinkPHP 支持对数据的定位查询: getN():取得查询结果中的某个位置的记录 first():取得符合条件的第一条记录 last():取得符合条件的最后一条记录 定位查询是内置于高级模型类(AdvModel)里的方法,是独立的方法且支持连贯操作。 ThinkPHP 定位查询 如果直接使用M或D实例化模型会提示: Model:getN您所请求的方法不存在! 因此要使用定位查询需要加载高级模型类 ThinkPHP 定位查询 两种方法加载高级模型类 1、使用动态模型切换 switchModel() 方法: switchModel(Adv) 2、在用户模型里面继承高级模型类: class UserModel extends AdvModel{ } ThinkPHP 定位查询 getN() switchModel() 下面是使用 switchModel() 方法定位查询的例子: 上例中用于取得 uid0 的第3条记录 getN() 中的参数是 LIMIT 中的第一个参数(游标偏移量)。 ThinkPHP 定位查询 getN() AdvModel 在 Lib/Model/UserModel.class.php 文件中定义模型如下: 由于不需要再模型类实现任何逻辑,因此可以是一个空模型。控制器中代码如下: ThinkPHP 定位查询 getN() 直接使用getN()方法 执行的效果和使用 switchModel() 一致。 ThinkPHP 定位查询 first() first() first() 方法用于获取符合条件的第一条记录,是高级模型类里面的方法,可以参考 getN() 的用法。 下面是使用 switchModel() 方法定位查询的例子: 该方法实际是执行 getN(0) 方法。 ThinkPHP 定位查询 last() last() 方法用于获取符合条件的最后一条记录,是高级模型类里面的方法,可以参考 getN() 的用法。 下面是使用 switchModel() 方法定位查询的例子: 该方法实际是执行 getN(-1) 方法。 ThinkPHP 原生SQL查询 原生SQL查询 尽管ThinkPHP内置了大量的数据操作方法,但ThinkPHP仍保留了对原生SQL查询的支持,以便满足复杂查询的需要和一些特殊的数据操作。 SQL查询的返回值是直接返回DB类的查询结果,没有做任何的处理,而且可以支持查询缓存。 ThinkPHP 原生SQL查询 原生SQL查询有 query() 和 execute() 两个方法: query():用于 SQL 查询操作,并返回符合查询条件的数据集 execute():更新和写入数据的 SQL 操作,返回影响的记录数 ThinkPHP 原生SQL查询 query() query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。 例子: ThinkPHP 原生SQL查询 execute() execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。 例子: ThinkPHP 原生SQL查询 如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。 注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。 ThinkPHP 原生SQL查询 小技巧 原生 SQL 查询需要在查询语句中写上对应的表名,如果表名有改动的时候,就需要逐行去更改 SQL 语句中的表名字,这样不免麻烦。ThinkPHP 提供了一个小技巧来帮助解决这个问题。 在 SQL 语句中,以 __TABLE__ 来替代真实的表名,而在实例化模型时,仍以表名为参数,如: ThinkPHP 原生SQL查询 系统在解析的时候会自动替换成当前模型对应的表名,这样就可以做到即使表名有所变化,只需修改实例化对应的表名即可而不用修改原生的 SQL 语句。 有问有答 有问有答 www.CSDN.net 北京市海淀区东北旺西路8号中关村软件园9号楼国际软件大厦2区三层100085 联系电话:010-828268

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档