在mysql里执行是通过的,但在php下不执行?去掉语句中C相关项可以执行;求解答,怎么解决?
functionupdateIndexResult(){$IndexDatas=D();$sql="updatedata_namea,cal_resultb,(selec...
function updateIndexResult() {
$IndexDatas = D();
$sql = "update data_name a,cal_result b,(select data_id,hhh,max(result_id) max_result_id from cal_result group by data_id) c set a.hhh=b.hhh,";
$sql .= "a.data_updated_time=unix_timestamp(now())";
$sql .= 'where a.data_id=b.data_id and b.data_id=c.data_id and b.result_id=c.max_result_id)';
$result = $IndexDatas->execute($sql);
return $t_result;
}
return $t_result;应该是return $result;
这段代码是写在数据处理模型里的,然后在主程序里执行这个函数:$dp->updateIndexResult();,去掉update中的C就能执行,如此却执行不到数据。。。把这段完整代码用mysql直接执行也是没有问题的,不知何故??
/***问题解决了!!!!!原来是这句结尾处多了个括弧,瞬间晕倒在地,不省人事。。。
$sql .= 'where a.data_id=b.data_id and b.data_id=c.data_id and b.result_id=c.max_result_id)'; 展开
$IndexDatas = D();
$sql = "update data_name a,cal_result b,(select data_id,hhh,max(result_id) max_result_id from cal_result group by data_id) c set a.hhh=b.hhh,";
$sql .= "a.data_updated_time=unix_timestamp(now())";
$sql .= 'where a.data_id=b.data_id and b.data_id=c.data_id and b.result_id=c.max_result_id)';
$result = $IndexDatas->execute($sql);
return $t_result;
}
return $t_result;应该是return $result;
这段代码是写在数据处理模型里的,然后在主程序里执行这个函数:$dp->updateIndexResult();,去掉update中的C就能执行,如此却执行不到数据。。。把这段完整代码用mysql直接执行也是没有问题的,不知何故??
/***问题解决了!!!!!原来是这句结尾处多了个括弧,瞬间晕倒在地,不省人事。。。
$sql .= 'where a.data_id=b.data_id and b.data_id=c.data_id and b.result_id=c.max_result_id)'; 展开
2个回答
2017-04-11
展开全部
把$sql用var_dump输出,然后拿到mysql里执行看看结果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询