2013-12-23 114 views
6

是否有一個php/javascript/mysql/ajax事件監聽器或方法可以在每次MySQL表中的數據發生更改時調用函數 - 例如添加新行或更改/刪除行時。MySQL表更改的事件監聽器?

還是我從錯誤的角度看待它,我還在學習AJAX。

只是希望指出正確的方向,我找不到任何東西。謝謝。

編輯 基本上當用戶坐在我的網站上,如果新數據添加到數據庫服務器上的(不是因爲這個用戶的動作)其他來源,我希望能夠調用一個爲這個用戶異步加載新數據的函數。

+0

不,Javascript沒有直接連接數據庫。你將不得不編寫一些代碼來做到這一點。 – DontVoteMeDown

+0

你描述的聲音比mysql更適合redis ... – dandavis

回答

2

如果你試圖改變基於MySQL的其他變化在MySQL的日期,觸發器應該工作:

http://dev.mysql.com/doc/refman/5.6/en/triggers.html

如果您希望在MySQL中的數據發生更改時進行服務器端或客戶端回調,那麼您不會通過MySQL本身擁有該功能。您可能需要向模式(標誌,時間戳等)添加一些指示數據更改的時間,並運行異步過程以基於數據更改執行某些操作。

+0

你會使用javascript setTimeout()函數來檢查標誌是否改變了嗎?例如,如果用戶坐在頁面上等待加載新內容。或者有更好的選擇。 – Andrew

+1

@badmin這是一個選項,雖然有其他選項,如彗星/長輪詢或網絡套接字。 –

1

對於您需要使用MySql Proxy

MySQL代理是一個簡單的程序,您的客戶端和MySQL服務器(一個或多個)
,可以監控,分析和改造自己的通信之間坐鎮。其靈活性允許 用於各種用途,包括負載平衡;故障轉移;查詢分析; 查詢過濾和修改;還有很多。安裝和建設 說明在源存檔

或者你需要保持一個日誌