2014-09-22 23 views
0

我正在php中使用mysqli_query(在免費層上使用Amazon EC2實例)運行查詢,我對結果進行了json_encoding並返回它們。出於某種原因,如果我不限制要返回的查詢結果的數量(或將限制設置爲超過158個結果的值),則數組返回0。但是,如果我確實放置了限制< = 158的結果,那麼我的所有結果都會在數組中正確返回。代碼如下:PHP mysqli_query返回0,除非我限制查詢結果的數量

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

普萊斯不使用'$ GLOBALS'和你的更好使用加入這個查詢 – SuperDJ 2014-09-22 17:48:40

+0

PHP不能不關心查詢重新啓動的記錄數/多少,除非您返回大塊並填滿內存。 – 2014-09-22 17:48:58

+0

查詢更改爲這樣的事: 「SELECT * FROM'User' JOIN'UserFriends' ON'User'.'id' ='UserFriend'.'userID' 其中'UserFriend'.'userID' =' $ userID'「 看看是什麼給你 – SuperDJ 2014-09-22 17:55:22

回答

0

原來這是因爲重音字符json_encode休息,和我的查詢結果一個(160位精確地)發生在包括重音字符