从数据库中获取一定数量的结果后,数组会清空吗?

时间:2016-02-17 14:58:26

标签: php mysql arrays mysqli

我正在尝试将查询结果提取到PHP数组中,查询非常简单,只返回94行,该过程运行完美,直到达到一定数量的结果,我通过反复试验发现了这一点,我认为这是一个数据问题,但它实际上是一个PHP问题,因为如果我运行查询数组清空,但如果我在查询中放置一个LIMIT进程运行正常,幻想数字是37后,数组将不会获取更多行并不显示任何内容,这就是我正在做的事情:

PD。问题似乎与名称字段有关,因为如果我只使用 id 字段,我可以毫无问题地获取94行。

$query = "SELECT Name AS DisplayText, id AS Value FROM branches ORDER BY DisplayText ASC LIMIT 37;";
$conn = new mysqli($host, $username,   $password, $database);
$res = $conn->query($query);
$rows= array();
while ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
$array['DisplayText'] = $row['DisplayText'];
$array['Value'] = $row['Value'];
array_push($rows,$array);
}
print json_encode($rows);

这种方式有效但我限制为37个结果,因为查询限制,我需要94个结果,但是如果我删除限制我什么也得不到

其他方式我尝试了相同的结果:

$query = "SELECT Name AS DisplayText, id AS Value FROM branches ORDER BY DisplayText ASC LIMIT 37;";
$conn = new mysqli($host, $username,   $password, $database);
$res = $conn->query($query);
$rows= array();//rows
while ($row= mysqli_fetch_array($res, MYSQLI_ASSOC)) {
$rows[] = $row;
}    
print json_encode($rows);

2 个答案:

答案 0 :(得分:0)

你可能会超过php或mysql数据包的最大允许内存吗?这有多大"姓名"每行的文字?

答案 1 :(得分:0)

必须是json_encode()处理得不好的奇怪字符。确保您正在喂食UTF-8或ISO-8859-1。建议here可能对您有所帮助。