我收到同一查詢以下錯誤: 警告:請求mysql_query():拒絕訪問用戶「www數據」 @「localhost」的(使用密碼:NO)MySQL連接在相同的查詢上失敗。嘗試用默認的用戶重新連接
的錯誤只發生在來自任何特定IP的第一次嘗試中。刷新頁面後,腳本運行良好。更具體地說,我會在一個位置從瀏覽器運行它,並且會出錯。如果我刷新頁面,問題就解決了。直到我嘗試從另一個位置。
從我收集的信息中可以看出,它失去了與數據庫服務器的連接,並嘗試使用默認用戶名重新連接。令我困惑的是,它每次都會在相同的查詢上失敗。我們稱之爲query_X。在query_X之前運行多個查詢,包括選擇,插入和更新。 Query_X看起來是這樣的:
UPDATE game_users
SET status_cd=$tmp_status,
expire_date=date_add('$currentExpire', interval $l_license_duration_days day)
WHERE game_user_id=$l_game_user_id
舉例來說,傳遞的變量是:
$tmp_status = 1;
$currentExpire = '2011-12-05';
$l_license_duration_days = 30;
$l_game_user_id = 1;
這是關於這個查詢,使連接失敗,爲什麼不刷新頁面解決問題?
Fyi,我正在使用持久連接。
編輯:我剛剛嘗試從我昨晚試過的IP。我又收到了錯誤。這是腳本的第一次運行。第二次運行該頁面後,它運行良好。
編輯:它也會在第一次在特定的瀏覽器上運行時出錯,即使它在同一個IP上,也就是說它會在Firefox上出現錯誤,然後很好,一旦出現錯誤,等
編輯:我已經縮小到一個mail()函數發生在query_X之前。我仍然不知道爲什麼郵件函數正在關閉mySQL連接。我決定將郵件功能(可以正常工作併發送電子郵件)放在php文件的末尾,無論如何我都會關閉連接。這是一個黑客攻擊,但我已經花費了太多時間。
「相同的查詢」?像什麼一樣? –
我的意思是,頁面運行良好,直到它遇到我上面顯示的UPDATE查詢,又名query_X。 – user1034772