大循环的空白页

时间:2012-09-29 23:01:06

标签: php mysql

我正在对超过20MM条目的数据库进行查询,这意味着我将查询分成几个较小的查询。

问题是,如果我尝试获取页面未加载的20MM条目,并显示空白屏幕,没有标题和内容。但是,如果我获取5MM条目,页面会正确加载,并显示内容:

这是我的代码

for($n=0; $n<20000000; $n=$n+500000){
    $m=500000;
$query = "SELECT * FROM user_likes LIMIT ". $n .",". $m; 
//echo $query;
$result = mysql_query($query) or die(mysql_error());

// craete arrays
while($row = mysql_fetch_array($result)){
    set_time_limit(0);
    $like[$row['name']]=$like[$row['name']]+1;
    if($like[$row['name']]==375) $likes375 ++; 

}


}

// print the size
echo count($like)."<br>";
echo "375: ".$likes375; 

如果有人可以帮助我,我将不胜感激。 感谢

修改

添加error_reporting(E_ALL);后显示此通知:MySQL服务器已消失

2 个答案:

答案 0 :(得分:1)

原因在于,当MySQL通过索引查找结果时,您的页面将为空白。过了一会儿,这会超时(取决于你的设置)。这就是为什么在小型查询中不会发生这种情况。

答案 1 :(得分:1)

这是由于php脚本的执行时间限制,默认情况下php脚本会在超时之前运行总共45秒......

只需在<?php

之后使用此功能
set_time_limit(0); // 0 means unlimited
  • 但不建议使用它,更好地改善数据库和php代码逻辑的逻辑。

编辑:

尝试通过以下方式为此文件设置错误日志:

ini_set("log_errors" , "1");
ini_set("error_log" , "eorrors.txt");
ini_set("display_errors" , "0");