TP getField不支持多表查询

$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、付费专栏及课程。

余额充值