Php 从数据库获得一定数量的结果后,数组是否清空?

Php 从数据库获得一定数量的结果后,数组是否清空?,php,mysql,arrays,mysqli,Php,Mysql,Arrays,Mysqli,我试图将一个查询的结果提取到一个PHP数组中,这个查询非常简单,只返回94行,这个过程运行得非常完美,直到找到一定数量的结果,我通过反复试验发现了这一点,我认为这是一个数据问题,但实际上是一个PHP问题,因为如果我运行查询,数组将清空,但是如果我在查询中设置了限制,进程将正常运行,神奇的数字是37,之后数组将不会获取更多行,并且什么也不显示,这就是我正在做的: 警察局。问题似乎出在Name字段上,因为如果我只使用id字段,我可以毫无问题地获取94行 $query = "SELECT Name A

我试图将一个查询的结果提取到一个PHP数组中,这个查询非常简单,只返回94行,这个过程运行得非常完美,直到找到一定数量的结果,我通过反复试验发现了这一点,我认为这是一个数据问题,但实际上是一个PHP问题,因为如果我运行查询,数组将清空,但是如果我在查询中设置了限制,进程将正常运行,神奇的数字是37,之后数组将不会获取更多行,并且什么也不显示,这就是我正在做的:

警察局。问题似乎出在Name字段上,因为如果我只使用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);

您可能超过了php或mysql数据包允许的最大内存?每行的“名称”文本有多大?

必须是一些奇怪的字符,
json\u encode()
处理得不太好。确保您正在向其馈送UTF-8或ISO-8859-1。提出的建议可能会对您有所帮助。

问题一定出在您的SQL中,取消限制不会阻止您返回行。如果您输入
echo mysqli_错误($conn)最后,它是否说明了任何错误?另外放入
错误报告(E_ALL)
将所有警告和错误输出到网页进行调试。@Kalkran是的,我尝试了我知道的所有调试方法,起初我认为这是DB问题,我检查了所有地方的错误,我的意思是,如果我在该表或除Name字段之外的其他表中尝试任何其他查询,所有操作都不会出现问题您不会收到任何错误,但不会收到任何数据?
限制为38的查询有效吗?39? 50, 60? 94?@Kalkran如果我不受限制地离开查询,我会得到一个白色屏幕如果我将限制设置为37或更低,我会得到结果限制设置为38或更高,我会得到一个白色屏幕,但只有当查询中存在名称字段时,如果我不使用名称字段,我可以毫无问题地获取94行,这可能是内存问题吗?我的意思是名称字段中的结果没有那么长,最长的可能是30个字符,我甚至放置了一个
ini\u集(“内存限制”,“2048M”)在我的代码中以防万一,我仍然一无所获
var\u dump($rows)do?每行不超过50个字符,我认为最长的有30个字符