我有一个选择,并且限制在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时,它说的是resource(525)类型(mysql结果)。如果有帮助,它可以在Apache服务器上使用。

如果我输入LIMIT 525,则可以正常显示所有页面,否则仅显示空白页面。片刻之后的所有内容均不起作用。

附言:我知道我不喜欢mysql_,但我对它不满意,但我对此无能为力。

最佳答案

增加内存将无济于事。这只是一个临时解决方案。另外,您需要考虑多个客户端同时执行相同的查询。系统将如何跟上内存消耗。

但是要对需要回退的fields保持选择性。

别:

SELECT *


做:

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


这将减少内存消耗,并使您处理事务。我想您不需要所有行。而且您尤其要避免使用TEXT / BLOB,因为它们通常很大。仅在需要显示/使用它们时才选择它们。

您还可以使用:

LIMIT 0, 100


翻阅结果。可能会对您有所帮助,但我会选择正确的字段来永久修复此问题。

还设置:

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


看看PHP是否能告诉您更多有关出问题的信息。

关于php - mysql_query选择限制为525个结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22029041/

10-11 03:41