我有一個頁面,包含一些公平的數據庫查詢,每個附加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