$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);
}
分享到:
相关推荐
getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下: 1.获取某个字段值 这个是getField方法最基本的用法,...
"new, getfield, putfield"这三个指令分别对应于对象创建、获取字段值和设置字段值的操作,它们在Java程序运行时起着至关重要的作用。下面将详细讲解这三个指令的工作原理以及它们在Java源代码和字节码之间的映射...
对于不常用或复杂的SQL查询,可以使用 `query()` 方法,它允许直接执行原生SQL语句,返回的结果与 `PDO::query()` 相同。例如: ```php $Model = new Model(); $result = $Model->query("select * from think_...
M方法直接实例化数据模型的父类,适用于那些需要对数据表进行基础CRUD(创建Create、读取Read、更新***e、删除Delete)操作,但不涉及复杂业务逻辑的场景。使用M方法时,如果模型类中定义了特定的业务逻辑,这些逻辑...
6. **泛型支持**:反射也支持对泛型类型和泛型方法的操作。 **反射的实例** 1. **动态创建对象**:通过`Activator.CreateInstance()`方法,可以在运行时根据类型创建对象实例。 ```csharp Type objectType = Type...
在Java中操作MongoDB数据库时,经常会遇到需要对数据进行聚合查询、分组统计和排序的需求。MongoDB的`aggregate`方法提供了强大的聚合框架,允许我们执行复杂的分析操作。在这个场景中,问题主要集中在如何正确地...
ThinkPHP框架的查询构建器提供了很多灵活的方法来实现不同的查询需求,`getField`方法是其中一种。除了`getField`,ThinkPHP的查询构建器还包括`where`、`order`、`limit`等方法,它们可以组合使用来构建复杂的查询...
上述代码执行了一个查询所有表`MyTable`中的记录的SQL命令。 4. **处理Recordset** `Recordset`对象表示查询结果,可以遍历、添加、修改或删除记录。例如,遍历记录集: ```cpp while (!pRecordset->adoEOF) {...
6. **SQL语句及多表查询**:这部分内容缺失,但通常涉及的是JOIN操作,可能包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)或全连接(FULL JOIN),以及可能的条件过滤。 总结这些知识点,...
总结,实现网页前端多条件搜索及后台分页涉及前端的AJAX请求、后端的参数解析、动态SQL构建、分页查询以及数据库优化等多个环节。理解这些概念和实践方法对于提升Web应用的用户体验和性能至关重要。
在Microsoft Visual C++ (VC) 和MFC (Microsoft Foundation Classes) 框架中,为数据库的一个表关联一个类是一种常见的做法,它使得程序能够更方便地操作数据库,提高代码的可读性和可维护性。MFC提供了一套称为DAO ...
5. **对象和数组操作指令**:如`new`创建新对象,`getfield`和`putfield`访问或修改实例字段,`aaload`和`aastore`用于数组元素的加载和存储。 6. **方法调用与返回指令**:`invokevirtual`用于调用对象的虚方法,`...
它不仅可以用于简单的文本检索,还支持复杂的查询语法、多语言支持等功能。 #### 四、实现全文检索的关键步骤 1. **文档解析与分词**:将原始文档转换为可检索的形式,通常涉及到自然语言处理技术,如分词。 2. **...
《JVM指令查询手册》是Java开发者不可或缺的参考资料,它深入解析了Java虚拟机(JVM)中的各种操作指令,帮助我们理解JVM的工作机制,优化代码执行效率,解决性能问题。JVM作为Java程序运行的平台,其内部运作原理...
对象操作指令涉及创建对象(如`new`),访问和调用方法(如`invokevirtual`,`invokespecial`),以及字段访问(如`getfield`, `putfield`)。数组操作指令如`iaload`加载数组中的int元素,`iastore`存储int元素到...
在"DBMSexample"中,我们可以看到如何初始化数据库会话、创建表、执行SQL语句以及处理查询结果。例如,开发者可能首先需要通过RDbSession类建立与数据库的连接,然后利用RDatabase类创建新的数据库或者打开已存在的...
运行应用程序,`datagridview`将显示`shp`文件的属性表,用户可以浏览、筛选和搜索数据,实现了在不依赖GIS软件的情况下查看`shp`文件的属性信息。 总结,通过结合GDAL/OGR库与Windows Forms的datagridview控件,...
- 包含子查询、联表查询、聚合函数等。 - 用于处理更复杂的业务逻辑和数据检索需求。 - **数据库优化方式**: - 合理设计索引。 - 优化查询语句。 - 分区表以减少查询范围。 - **数据库拆分方式**: - 水平...