我經常面臨以下情況;我正在開發一個以PHP爲基礎的現有系統,它實際上是相當多的,它通常由許多代碼組成。現在我必須擴展一些功能,調試一些東西,並且需要知道系統如何與MySQL-DB交互。哪些請求按什麼順序執行。如何攔截DB請求? (MySQL)
如何截取所有查詢?對於數據庫來說就像xdebug_start_trace。
編輯:沒有DB請求的集中處理。你可以在那裏找到各種請求。所以我的問題是針對一些日誌功能。基本上這應該存在,因爲像這樣的東西可能是有用的常識。
編輯2:馬里奧建議的解決方案,這取決於重新啓動mysql-deamon ...不能做。更多建議?
是否有一個類可以處理所有的MySQL數據庫連接? – 2011-02-04 13:19:15
我懷疑它可以使用原始API函數在遺留代碼上完成。 – 2011-02-04 13:25:43
如果現有代碼直接使用mysql_query(),則最後一個選項將嘗試runkit_function_rename()並定義攔截所有調用的包裝函數。或者更糟糕的選擇:通過netcat | tee | netcat運行套接字或使用網絡嗅探器。 – mario 2011-02-04 13:27:46