mysql_query选择限制在525结果

时间:2014-02-26 00:12:03

标签: php mysql

我有一个选择,并且限制在525的结果,否则将会卡住。

    $query_other = "SELECT * FROM prod where active=1 and aprobat=1";
    $other = mysql_query($query_other, $conn) or die(mysql_error());
    while($row = mysql_fetch_assoc($other)){
        $other_prod[]=$row;
    } 

在cpanel中,它显示超过525,当我在$ other上执行var_dump时,它的资源(525)类型(mysql结果)。如果它有帮助,它在Apache服务器上。

如果我把LIMIT 525工作并显示所有页面,否则只是空白页面。一段时间之后的任何事都行不通。

P.S:我知道mysql_已被弃用,我讨厌它,但在任务中是必需的,我对它没有任何权力。

2 个答案:

答案 0 :(得分:0)

如果问题确实是内存,你可以用它动态增加它:

ini_set("memory_limit","512M"); //i.e. change the memory_limit to 512M, you should specify more than current limit.

答案 1 :(得分:0)

增加记忆力无济于事。这只是一个临时修复。此外,您需要考虑多个客户端同时执行相同的查询。系统如何跟上内存消耗。

但是对您需要撤回的fields有选择性。

<强>不

SELECT *

<强>不要

SELECT `field1`, `field2`, ...

这将减少内存消耗,让你处理事情。我想你不需要所有的行。而且您特别希望避免使用TEXT / BLOB个,因为它们通常较大。只有在需要显示/使用它们时才选择它们。

您也可以使用

LIMIT 0, 100

通过结果分页。可能会帮助你一点但我会选择正确的字段来永久修复它。

同时设置

ini_set('display_errors', true);
error_reporting(-1);

看看PHP是否告诉你更多关于出了什么问题。

相关问题