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

标签 php mysql amazon-ec2

我目前正在使用 mysqli_query(使用免费套餐上的 Amazon EC2 实例)在 PHP 中运行查询,我对结果进行 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 问题?还应该注意的是,我在各个表上运行了几个其他查询,这些查询毫无问题地返回数百个结果。

最佳答案

原来这是因为 json_encode 在重音字符上中断,而我的一个查询结果(正好在位置 160)恰好包含一个重音字符

关于PHP mysqli_query 返回 0 除非我限制查询结果的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979999/

相关文章:

django - Elastic Beanstalk 未在所有实例上部署

amazon-web-services - 设置 Tableau Server 以在 AWS GovCloud 上运行

php - 返回单个数据库结果的正确方法是什么?

mysql进程没有进程ID

javascript - jQuery + PHP HighChart 未正确更新

mysql - 当 flyway 进程崩溃时,Flyway 不处理隐式提交的语句

Mysql ENUM 不使用索引

mysql - docker - 如何将mysql数据从本地迁移到ec2实例

javascript - 从外部网站验证 Moodle 用户

javascript - 在数据库中插入值后显示成功消息