最好的辦法是,在應(yīng)用程序生命周期內(nèi),對(duì)于數(shù)據(jù)庫(kù)設(shè)置有事件鉤子,用于監(jiān)聽(tīng)程序?qū)τ跀?shù)據(jù)庫(kù)的操作。這樣非常方便處理邏輯流程。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到東方網(wǎng)站設(shè)計(jì)與東方網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋東方地區(qū)。
1 - 表的數(shù)據(jù)變化
表數(shù)據(jù)發(fā)生了變化,毫無(wú)疑問(wèn)是寫(xiě)操作,包括以下幾種情形:
新建條目 create
更新條目 update
刪除條目 delete
以上三種都是寫(xiě)操作,會(huì)對(duì)表數(shù)據(jù)寫(xiě)入。
2 - 事件鉤子
既然需要實(shí)時(shí)監(jiān)控,那么每個(gè)數(shù)據(jù)庫(kù)的操作,都需要考慮在內(nèi),這是全局的監(jiān)聽(tīng)。
以laravel的Eloquent ORM 模型觸發(fā)事件,允許你掛接到模型生命周期的如下節(jié)點(diǎn): retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允許你每當(dāng)特定模型保存或更新數(shù)據(jù)庫(kù)時(shí)執(zhí)行代碼。每個(gè)事件通過(guò)其構(gòu)造器接受模型實(shí)例。
模型內(nèi)添加事件監(jiān)聽(tīng)鉤子
如果重用率很高,那么使用觀察者 Observer 方式進(jìn)行監(jiān)聽(tīng)更為高效。
Laravel Observer
結(jié)語(yǔ)
上面的方法要求讀者有l(wèi)aravel框架的使用基礎(chǔ),對(duì)于構(gòu)建中大型應(yīng)用非常有利。
那你可以在插入數(shù)據(jù)庫(kù)那里設(shè)置監(jiān)聽(tīng)呀,一有插入就往Android推送消息。
不然你只能通過(guò)每隔一段時(shí)間刷新一下讀取數(shù)據(jù)庫(kù),看看有沒(méi)有更新,有就推送,沒(méi)有就繼續(xù)監(jiān)聽(tīng),這個(gè)你可以自己設(shè)置更新時(shí)間。
比如有個(gè)user的表,且表里有數(shù)據(jù)。
$user=M('User');
$list=$user-find();
dump($list);
若有數(shù)據(jù),則表示連接成功。土辦法。如果樓主還有不明白的,建議去后盾人找找相關(guān)教學(xué)視頻看看。
樓上說(shuō)的還是要定時(shí)檢測(cè)
不論怎么做,繞來(lái)繞去都是一樣的,都是需要定時(shí)檢測(cè)。
Ajax 控制一個(gè)異步PHP程序來(lái)檢測(cè)數(shù)據(jù)庫(kù),然后返回值,供調(diào)用。
如果不想每條查詢(xún)一次,可以提前做一個(gè)統(tǒng)一查詢(xún)
$sql=mysql_query("select distinct Code from test ",$conn);
$sqlvalue=[];
while($row=mysql_fetch_array($sql)){
$sqlvalue[]=$row['Code'];
}
另外 ,可以在建表的時(shí)候設(shè)置unique index,來(lái)徹底避免插入重復(fù)記錄,如果沒(méi)過(guò)濾好插入重復(fù)記錄的時(shí)候,系統(tǒng)會(huì)直接報(bào)錯(cuò)