TP getField不支持多表查询

20 篇文章 0 订阅
$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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值