2014-06-19 9 views
-2

從一個問題我以前問(Preventing duplicate INSERTS MySQL)另一個問題出現了:是否超時HTTP POST導致SQL回滾?

如果客戶端提供了一個POST請求到服務器,服務器處理的POST,插入到SQL並沒有什麼,然後發送應答(或在至少HTTP 200 OK),但該答覆沒有被客戶端接收...... SQL語句然後「不計數」或自動回滾或什麼?

這對於在POSTS中對使用POST的客戶端無法唯一標識的行使用INSERT非常重要。

+0

您能否解釋_reply未收到_?還有什麼收到? 'HTTP 200 OK'意味着請求成功,但這並不意味着你的代碼實際上完全/成功運行。 –

+0

這與我所問的實際上沒有任何關係。我的意思是: 客戶端發送到服務器 - 收到。 服務器回答客戶端請求 - 未被客戶端接收。 在這種情況下,服務器仍然會執行SQL語句還是TCP協議會以某種方式阻止此操作? – nickdnk

+1

TCP協議(或HTTP相關事務)水平太低,無法關心MySQL,回滾等任何事情。行爲取決於應用程序級別的實現,例如, Apache和PHP。提供更多細節以獲得正確答案。 –

回答

0

一般來說,不,服務器不會回滾SQL插入。該請求在服務器端進行處理,然後完成。

想象服務器像處理函數一樣處理它。一旦函數作業完成,它將返回需要的任何內容(在這種情況下,響應客戶端),然後完成。同樣的過程發生在這裏,服務器不會等待客戶端是否收到請求,因爲它的功能已經完成。

+0

謝謝。這就是我需要聽到的,也是我認爲的事實。 – nickdnk

+0

隨時,很高興我能幫助你!如果其他人有同樣的問題,請隨時注意我的回覆以保持它的正確性! –

+0

當然。太糟糕了,我得到低調提問。 – nickdnk