2017-01-16 56 views
1

問題阿賈克斯自動更新:當MySQL更新

我怎樣才能從MySQL(更新消息)的消息,然後它會自動更新記錄,並在實時顯示它?

我正在尋找關於MySQL觸發器(就是可以調用PHP文件?)

任何人都可以幫助解決這個問題。非常感謝。

+0

你幾乎肯定希望輪詢數據庫的更改,而不是從字面上讓數據庫觸發外部程序。這個問題更深入地討論了這個問題https://stackoverflow.com/questions/668666 –

回答

0

你不能通過使用mysql觸發器來實現這一點。 MySQL觸發器是一個與表關聯的數據庫對象。當爲該表執行定義的操作時,它將被激活,並僅在MySQL域中執行定義的任務。你不能用MySQL觸發器執行PHP或JS腳本。

對於這一點,你必須在PHP中使用Socket編程。

Socket Reference

1

如果你問的是Ajax調用然後是的,我們能做到這一點,通過的JavaScript

下面是一些Ajax做什麼,以及爲什麼需要它的鏈接:

  1. What is Ajax?
  2. Wikipidea

現在來到你的問題,的問題實際上是不完整的因爲您沒有發佈任何代碼或您的努力來幫助我們理解您想要實現的目標。因此,如果沒有任何參考,我想告訴您不能直接從Javascript調用MySql觸發器(就客戶端而言)。

爲了調用D B Mysql觸發器您需要任何支持MySql和語言本身之間連接的服務器端語言。

Php是一種支持的語言,你可以閱讀它here & here

Ajax的的一個基本的例子是這樣的,它使用jQuery是:

$.ajax({ 
    url: "<where to post>", 
    type: "POST",//type of posting the data 
    data: <what to post>, 
    success: function (data) { 
    //what to do in success 
    }, 
    error: function(xhr, ajaxOptions, thrownError){ 
     //what to do in error 
    }, 
    timeout : 15000//timeout of the ajax call 

});

現在網址是哪個服務器會響應的URL,這將是腓呼叫的代碼。

通過上面的示例,您可以在任何特定事件的UI上調用服務器端調用,並且該服務器內部調用將觸發MySql觸發器,等待觸發器獲取結果並返回相同/部分從觸發器返回的數據返回給UI調用者成功()回調。

另外反之亦然(據我所知)在你的情況下是不可能的。從調用一個php文件MySql觸發器並不那麼簡單(或者可能不可能),並且需要額外的努力,也不推薦。所以請想辦法解決您的問題。

FYI:如果你能寫在PHP自己的函數/類,那麼它是更好,因爲你對條件和數據更好的控制,而不是依賴於數據庫但是,是在同一時間的速度如果你使用PHP實現,速度要慢一點,所以在實現之前要考慮清楚。