怎麼監聽到資料庫的資料變化?
需要實作即時推播訊息。前端使用websocket,後端php與node.js都行。 (建議學習:PHP視訊教學)
現在的問題是,前端監聽伺服器端某個資料表的資料變更。無論php socket或nodejs socket.io都只監聽socket埠的事件,但資料庫的變化又怎麼取得呢?
這個資料表的更新可能自己socket端的用戶,也可能不處在socket端,有時還可能是管理人員更改了資料。那麼,作為服務端的socket怎麼監聽資料變化的事件,然後推送回前端? !
資料庫可能是mysql,也可用mongo。
解決方法:
在應用程式層面一般來說就是用攔截器之類的方式來實作變化監聽,但是這種方式無法解決資料庫端直接修改。
資料庫層面一般三種方法:
1、類似Oracle等商用資料庫,提供事件監聽機制,可以主動通知連接方關於資料變更的通知;
2、採用觸發器,需要監控的表設定觸發器,然後呼叫php函數等觸發外部機制;
3、採用觸發器,需要監控的表設定觸發器,但只是寫入日誌表,外部仍需要輪詢該日誌表;
4、監控或掃描資料庫日誌,發現資料庫每項變更動作。
以上是php可以監聽資料庫變化嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!