我有一个页面,包含一些公平的数据库查询,每个附加or die()
。我每隔1秒加载一次该页面进行测试,并随机加载页面(可能需要两次,可能需要五次或十次)die()
已切换并出现错误。mysql_fetch_assoc()死亡,并给随机页面加载错误?
我崩溃了剧本,并成功地分离出特定问题的查询,它是:
$fetch = mysql_fetch_assoc($result) or die("Error 3:" . mysql_error());
这种特殊的行内包含:
if($size > 0) {
$off_id = array();
while($row = mysql_fetch_assoc($result)) {
$off_id[] = $row['off_id'];
}
echo '<pre>';
var_dump($off_id);
echo '</pre>';
$rand = rand(0,$size);
$off_id = $off_id[$rand];
$query = "UPDATE rotation_data SET hit_counter = hit_counter + 1 WHERE off_id = '{$off_id}'";
$result = mysql_query($query) or die("Error 1:" . mysql_error());
$query = "SELECT * FROM offer_data WHERE off_id = '{$off_id}'";
$result = mysql_query($query) or die("Error 2:" . mysql_error());
$fetch = mysql_fetch_assoc($result) or die("Error 3:" . mysql_error());
$offer_url = $fetch['url']; $geo_target = $fetch['geo_target']; $blank = $fetch['blank'];
}
事情我注意:
- 否
mysql_error()
已退回/打印。只有Error 3:
是。 - 的
$off_id
阵列正确转储每一次,所以总是在以前$result
查询中使用的$off_id
,并且,如果没有,应触发die()
为$result
查询,而不是。
我不明白为什么会出现随机页面加载,而不是所有的时间,因为这可能指向它不是一个语法问题,但加载问题?
但是,即使它是一个负载问题,我不明白为什么这个特定的查询会失败,并触发die()
而其他人都很好。
任何帮助理解这可能是什么,以及我可以做什么来解决这个问题的建议将不胜感激!
[''或死()'必死](http://www.phpfreaks.com/blog/or-die-must-die)。另外,对于语句错误,使用'mysql_error($ result)' – Phil
你不应该再使用mysql,使用mysqli或PDO。 http://www.php.net/manual/en/intro.mysqli.php –
建议@Phil道具。 – Avicinnian