MySQL查询VS PHP查询给我错误的结果

时间:2018-09-18 23:12:38

标签: php mysql

我有一个拥有超过110,000条记录的访问日志数据库。

我在控制台上运行下一个查询:

SELECT COUNT(`remote_host`), `remote_host` FROM `access_log`
GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99
ORDER BY COUNT(`remote_host`) DESC 

我有那个结果。 Mysql query result

有143条记录。

但是当我使用相同的查询执行PHP代码时,结果与174条记录(??)有所不同。 Query with PHP

第一个记录的下一个值是:89.248.174.171,14160

2365和14160 !! ??

第二个结果没问题。 但是...所有下一个结果也是不同的!!

简单的PHP代码:

$q_1 = "SELECT COUNT(`remote_host`), `remote_host` FROM `access_log` GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99 ORDER BY COUNT(`remote_host`) DESC ;";

$aItems = doQuery($con, $q_1);
echo count($aItems)."<br/>";
var_dump($aItems);

函数doQuery:

function doQuery($con, $query) {
    $result = mysqli_query($con, $query);

    $arr = array();
    if ($result) {
        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
            $arr[] = $row;
        mysqli_free_result($result);
    }
    return $arr;
}

1 个答案:

答案 0 :(得分:0)

只需在PHP中使用AS定义一个计数

SELECT COUNT(`remote_host`) AS RHOST, `remote_host` FROM `access_log`
GROUP BY `remote_host` HAVING COUNT(`remote_host`) > 99
ORDER BY COUNT(`remote_host`) DESC