1

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

我有一个标准的数据库查询对表进行选择。它返回一个资源,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 多条记录的表上

编辑最后:好的,想通了!原来我们的内存限制太低了,所以它试图分配非法的内存量!所以我们升级了它,现在它可以工作了!此外,我在其他代码有条件地关闭它的地方报告了错误……这就是我没有看到错误的原因!呃......无论如何,感谢那些对圣诞快乐和所有爵士乐做出回应的人......

4

0 回答 0