所以我有一个非常奇怪的问题,我不太清楚该怎么想......
我有一个标准的数据库查询在表上执行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和所有那些爵士乐......