我目前正在使用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问题?还应该注意的是,我在各种表上运行了几个其他查询,这些查询返回了数百个结果,没有任何问题。
答案 0 :(得分:0)
原来是因为json_encode打破了重音字符,我的一个查询结果(确切地位于160位)碰巧包含一个带重音的字符