我正在調試舊版PHP應用程序中的一個問題,其中表中的某個列沒有約束將表中的所有行設置爲值。這種行爲是意想不到的,所以我花了相當長的時間來追查錯誤的原因。用於排除意外的mysql查詢故障的技巧
背景:
- 這是一個間歇性問題。
- 在我們的開發環境,我們不能複製(這等同於生產環境)
- 該應用程序是使用ORM
我們已經試過:
- 審閱源代碼
- 查看mysql bin日誌。這使我們能夠看到它是一個沒有子句的單個UPDATE查詢,實際上是導致不正確的數據出現。
- 添加其他應用程序級別的日誌記錄。這讓我們對應用程序有了更好的理解,但是我們一直無法發現錯誤。
我的問題:
當在一個陌生的應用面臨着一個看似無賴查詢,你用什麼技術來查找查詢的來源是什麼?
我正在使用grep – 2010-12-02 16:21:24
ORM是虛假的,在將更新查詢發送到mysql之前嘗試進行一些日誌記錄 – ajreal 2010-12-02 16:25:53