所以我有一个非常奇怪的问题,不太确定该怎么想...
我有一个标准的数据库查询对表进行选择。它返回一个资源,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 多条记录的表上
编辑最后:好的,想通了!原来我们的内存限制太低了,所以它试图分配非法的内存量!所以我们升级了它,现在它可以工作了!此外,我在其他代码有条件地关闭它的地方报告了错误……这就是我没有看到错误的原因!呃......无论如何,感谢那些对圣诞快乐和所有爵士乐做出回应的人......