PHP PDO查询只返回一个不完整的行,它不是关于fetch或fetchAll

时间:2015-12-15 02:22:41

标签: php mysql pdo

说明
大家好,我在php中遇到一个关于pdo的一个非常奇怪的问题,如果我使用Sybase的sqlDbx (数据库管理软件)搜索,我可以得到正确的结果,但如果我使用pdo进行搜索,我只能获得一个不完整的行,我也使用fetchAll来查看结果。这意味着通过sqlDbx和pdo获得不同的resutls相同的sql语句。

代码和现象
mysql语句:

SELECT 
    DATE_ID,
    HOUR_ID,
    ROUND(100*SUM(pmRrcConnEstabSucc)/SUM(pmRrcConnEstabAtt),6) AS leftAxis,
    ROUND(100*SUM(pmRrcConnEstabSucc)/SUM(pmRrcConnEstabAtt)*((SUM(pmErabEstabSuccInit)+SUM(pmErabEstabSuccAdded))/(SUM(pmErabEstabAttInit)+SUM(pmErabEstabAttAdded))),6) AS rightAxis 
FROM 
    dc.DC_E_ERBS_EUTRANCELLTDD_RAW 
WHERE 
    (DATE_ID BETWEEN '2015-12-11' AND '2015-12-11') AND ERBS='LDF32E44' 
GROUP BY 
    DATE_ID,HOUR_ID 
ORDER BY 
    DATE_ID asc, HOUR_ID asc

执行:

$res = $db->query($sqlCommand, PDO::FETCH_ASSOC);
print_r($res->fetchAll());
来自pdo的

结果:

Array
(
    [0] => Array
        (
            [DATE_ID] => Dec 11 2015 12:00:00:000AM
            [HOUR_ID] => 0
            [leftAxis] => 100.0000000000000000000000000000000000
            [rightAxis] => 
        )
)

这个sql语句Involvs两个公式:

leftAxis  = 100*pmRrcConnEstabSucc/pmRrcConnEstabAtt
rightAxis = 100*pmRrcConnEstabSucc/pmRrcConnEstabAtt*((pmErabEstabSuccInit+pmErabEstabSuccAdded)/(pmErabEstabAttInit+pmErabEstabAttAdded))

(ps:还有很多其他的公式,他们可以通过pdo和sqlDbx获得严格的结果)

我的分析:
问题可能来自rightAxis,因为返回结果丢失了rightAxis,所以我尝试将rightAxis拆分为:
100*pmRrcConnEstabSucc/pmRrcConnEstabAtt ((pmErabEstabSuccInit+pmErabEstabSuccAdded)/(pmErabEstabAttInit+pmErabEstabAttAdded))
我分别执行这两个公式,我可以得到正确的结果,但如果我把它们组合在一起,它就不起作用。我试着改变*/的顺序,它也没有工作。
所以,谁能知道问题是什么?

0 个答案:

没有答案