`
flex_莫冲
  • 浏览: 1084981 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TP getField不支持多表查询

php 
阅读更多
$time = time() - 60*60*24; // 一天之前的臨時文件
$yesterday = date("Y-m-d H:i:s", $time);
    $fileIDs = M("dpp_tmp_page, file")->where("dpp_tmp_page.fileID=file.fileID and file.createDate < '"
    . $yesterday . "' and file.status=1")->getField("dpp_tmp_page.fileID", true);


期望查询结果:获取fileID数组。
实际查询结果:sql执行正确,但是查询结果没有fileID,value值是null。
array(43) {
  [0] => NULL
  [1] => NULL
  [2] => NULL
  [3] => NULL
  [4] => NULL
  [5] => NULL

单表查询结果
$r = M("dpp_tmp_page")->getField("fileID", true);

查询结果:array(43) {
  [0] => string(5) "69082"
  [1] => string(5) "69088"
  [2] => string(5) "69094"
  [3] => string(5) "69100"
  [4] => string(5) "69106"
  [5] => string(5) "69110"
  [6] => string(5) "69115"
  [7] => string(5) "69121"
  [8] => string(5) "69130"

因此,多表查询不要用getField的方式来获取某个field的数组数据。

测试代码
public function testGetField()
	{
		$yesterday = date("Y-m-d H:i:s");
		$result = M("dpp_tmp_page, file")->where("dpp_tmp_page.fileID=file.fileID and file.createDate < '" 
    				. $yesterday . "' and file.status=1")->getField("dpp_tmp_page.fileID", true);
		echo M()->getLastSql();
		dump($result);
		$r = M("dpp_tmp_page")->getField("fileID", true);
		echo M()->getLastSql();
		dump($r);
	}
分享到:
评论

相关推荐

    ThinkPHP之getField详解

    getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下: 1.获取某个字段值 这个是getField方法最基本的用法,...

    实现new, getfield, putfield指令

    "new, getfield, putfield"这三个指令分别对应于对象创建、获取字段值和设置字段值的操作,它们在Java程序运行时起着至关重要的作用。下面将详细讲解这三个指令的工作原理以及它们在Java源代码和字节码之间的映射...

    thinkPHP数据查询常用方法总结【select,find,getField,query】

    对于不常用或复杂的SQL查询,可以使用 `query()` 方法,它允许直接执行原生SQL语句,返回的结果与 `PDO::query()` 相同。例如: ```php $Model = new Model(); $result = $Model-&gt;query("select * from think_...

    ThinkPHP3.2.1知识点

    M方法直接实例化数据模型的父类,适用于那些需要对数据表进行基础CRUD(创建Create、读取Read、更新***e、删除Delete)操作,但不涉及复杂业务逻辑的场景。使用M方法时,如果模型类中定义了特定的业务逻辑,这些逻辑...

    java mongdb aggregate sort查询.pdf

    在Java中操作MongoDB数据库时,经常会遇到需要对数据进行聚合查询、分组统计和排序的需求。MongoDB的`aggregate`方法提供了强大的聚合框架,允许我们执行复杂的分析操作。在这个场景中,问题主要集中在如何正确地...

    ThinkPHP查询返回简单字段数组的方法

    ThinkPHP框架的查询构建器提供了很多灵活的方法来实现不同的查询需求,`getField`方法是其中一种。除了`getField`,ThinkPHP的查询构建器还包括`where`、`order`、`limit`等方法,它们可以组合使用来构建复杂的查询...

    ADO访问Access数据库示例代码

    上述代码执行了一个查询所有表`MyTable`中的记录的SQL命令。 4. **处理Recordset** `Recordset`对象表示查询结果,可以遍历、添加、修改或删除记录。例如,遍历记录集: ```cpp while (!pRecordset-&gt;adoEOF) {...

    选择题21

    6. **SQL语句及多表查询**:这部分内容缺失,但通常涉及的是JOIN操作,可能包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)或全连接(FULL JOIN),以及可能的条件过滤。 总结这些知识点,...

    网页前端多条件搜索 后台分页方法代码

    总结,实现网页前端多条件搜索及后台分页涉及前端的AJAX请求、后端的参数解析、动态SQL构建、分页查询以及数据库优化等多个环节。理解这些概念和实践方法对于提升Web应用的用户体验和性能至关重要。

    VC/MFC为数据库的一个表关联一个类

    在Microsoft Visual C++ (VC) 和MFC (Microsoft Foundation Classes) 框架中,为数据库的一个表关联一个类是一种常见的做法,它使得程序能够更方便地操作数据库,提高代码的可读性和可维护性。MFC提供了一套称为DAO ...

    JVM指令码表.zip

    5. **对象和数组操作指令**:如`new`创建新对象,`getfield`和`putfield`访问或修改实例字段,`aaload`和`aastore`用于数组元素的加载和存储。 6. **方法调用与返回指令**:`invokevirtual`用于调用对象的虚方法,`...

    快速构建PHP全文检索——马明练

    它不仅可以用于简单的文本检索,还支持复杂的查询语法、多语言支持等功能。 #### 四、实现全文检索的关键步骤 1. **文档解析与分词**:将原始文档转换为可检索的形式,通常涉及到自然语言处理技术,如分词。 2. **...

    JVM指令查询手册.rar

    《JVM指令查询手册》是Java开发者不可或缺的参考资料,它深入解析了Java虚拟机(JVM)中的各种操作指令,帮助我们理解JVM的工作机制,优化代码执行效率,解决性能问题。JVM作为Java程序运行的平台,其内部运作原理...

    JVM指令查询手册.pdf

    对象操作指令涉及创建对象(如`new`),访问和调用方法(如`invokevirtual`,`invokespecial`),以及字段访问(如`getfield`, `putfield`)。数组操作指令如`iaload`加载数组中的int元素,`iastore`存储int元素到...

    DBMSexample_v1_0.zip_dbms_symbian

    在"DBMSexample"中,我们可以看到如何初始化数据库会话、创建表、执行SQL语句以及处理查询结果。例如,开发者可能首先需要通过RDbSession类建立与数据库的连接,然后利用RDatabase类创建新的数据库或者打开已存在的...

    datagridview打开shp文件属性表代码

    运行应用程序,`datagridview`将显示`shp`文件的属性表,用户可以浏览、筛选和搜索数据,实现了在不依赖GIS软件的情况下查看`shp`文件的属性信息。 总结,通过结合GDAL/OGR库与Windows Forms的datagridview控件,...

    java高级工程师面试总结

    - 包含子查询、联表查询、聚合函数等。 - 用于处理更复杂的业务逻辑和数据检索需求。 - **数据库优化方式**: - 合理设计索引。 - 优化查询语句。 - 分区表以减少查询范围。 - **数据库拆分方式**: - 水平...

    Access (VC6.0)操作大全

    Access数据库由多个对象组成,包括表、查询、窗体、报表、宏和模块。表是数据库的基础,存储数据;查询用于检索、筛选和组合数据;窗体和报表用于数据的显示和打印;宏则是自动化任务的集合;模块则允许编写VBA...

Global site tag (gtag.js) - Google Analytics