php while while循环在获取结果行时莫名其妙地失败

时间:2012-12-23 18:13:20

标签: php mysql

所以我有一个非常奇怪的问题,我不太清楚该怎么想......

我有一个标准的数据库查询在表上执行select。它返回一个资源,num_rows = 101,它将获取行到第42行,此时它只是停止所有脚本执行,没有错误,没有超时(需要不到一秒的时间才能得到42行)...我无法提供链接,但这里是有问题的代码...

$select2 = "SELECT * FROM `$dbname`.`$file" . "_settings` WHERE `weight` <> 0 ORDER BY `count` ASC";
$result = mysql_query($select2);
$lpcnt = 0;
$numrows = mysql_num_rows($result);
while ($display = mysql_fetch_array($result, MYSQL_ASSOC)){
    /* This will print out 42 times */
    echo '<pre>In The LOOP, row('.$lpcnt.'):<br>NumRows: '.$numrows.'<br>';
    print_r($display);
    echo '</pre><br/>';
    $domRows[] = $display;
    $aTotal[] = $display['count'];
    $aTotWeight[] = $display['weight'];
    //debug vars
    $d['url'] = $display['url'];
    $d['total'] = $total;
    $d['count'] = $display['count'];
    $d['weight'] = $display['weight'];
    $dbug['domRows'][] = $d;
    $lpcnt++;
}
/* Never Reaches this */
echo '<pre>';die(print_r('Loop Finished'));

在结果循环中途导致失败的原因不知所措......

也..我知道,我知道...... myql_已经折旧了,但这就是我必须要做的事情!

提前感谢任何人都可以摆脱的任何光......这真的伤害了网站!

编辑:这也不会一直打破,到目前为止它似乎与结果的数量有某种关系...例如,如果我运行一个有39行的结果集,它将处理所有他们......并且它在42行......我的桌子上有100多条记录

EDIT FINAL:好的想通了!事实证明我们的内存限制很低,所以它试图分配非法内存量!所以我们提高了它,现在它的工作原理!此外,我在一个有条件地被其他代码关闭的地方报告了我的错误...这就是为什么我没有看到错误! Duh ......无论如何,感谢刺,那些回应了Merry x-mas和所有那些爵士乐......

0 个答案:

没有答案
相关问题