PHP mysqli_query返回0,除非我限制查询结果的数量

时间:2014-09-22 17:39:55

标签: php mysql amazon-ec2

我目前正在使用mysqli_query在PHP中运行查询(在免费套餐上使用Amazon EC2实例)我json_encoding结果并返回它们。出于某种原因,如果我不对要返回的查询结果的数量设置限制(或将限制设置为高于158的结果),则数组返回“0”。但是,如果我确实设置了限制< = 158结果,那么我的所有结果都会在数组中正确返回。代码如下:

function pullFriendData() {
    $userID = $GLOBALS['userID'];
    $userArray = array();

    $query = "SELECT * FROM `User` WHERE `userID` in (SELECT `friendID` FROM `UserFriends` WHERE `userID` = '" . $userID . "'";
    if ($query_result = mysqli_query($GLOBALS['con'], $query)) {
        while ($row = $query_result->fetch_assoc()) {
            $row = convertUserToInt($row);
            array_push($userArray, cleanse($row));
        }
    } else {
        echo "[pullFriendData]: Issue with finding friends of given user";
    }
    return json_encode($userArray);
}

非常奇怪的行为 - 有没有人碰到过这个?这是一个PHP问题还是可能是EC2问题?还应该注意的是,我在各种表上运行了几个其他查询,这些查询返回了数百个结果,没有任何问题。

1 个答案:

答案 0 :(得分:0)

原来是因为json_encode打破了重音字符,我的一个查询结果(确切地位于160位)碰巧包含一个带重音的字符