十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最好的办法是,在应用程序生命周期内,对于数据库设置有事件钩子,用于监听程序对于数据库的操作。这样非常方便处理逻辑流程。
站在用户的角度思考问题,与客户深入沟通,找到东方网站设计与东方网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖东方地区。
1 - 表的数据变化
表数据发生了变化,毫无疑问是写操作,包括以下几种情形:
新建条目 create
更新条目 update
删除条目 delete
以上三种都是写操作,会对表数据写入。
2 - 事件钩子
既然需要实时监控,那么每个数据库的操作,都需要考虑在内,这是全局的监听。
以laravel的Eloquent ORM 模型触发事件,允许你挂接到模型生命周期的如下节点: retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允许你每当特定模型保存或更新数据库时执行代码。每个事件通过其构造器接受模型实例。
模型内添加事件监听钩子
如果重用率很高,那么使用观察者 Observer 方式进行监听更为高效。
Laravel Observer
结语
上面的方法要求读者有laravel框架的使用基础,对于构建中大型应用非常有利。
那你可以在插入数据库那里设置监听呀,一有插入就往Android推送消息。
不然你只能通过每隔一段时间刷新一下读取数据库,看看有没有更新,有就推送,没有就继续监听,这个你可以自己设置更新时间。
比如有个user的表,且表里有数据。
$user=M('User');
$list=$user-find();
dump($list);
若有数据,则表示连接成功。土办法。如果楼主还有不明白的,建议去后盾人找找相关教学视频看看。
楼上说的还是要定时检测
不论怎么做,绕来绕去都是一样的,都是需要定时检测。
Ajax 控制一个异步PHP程序来检测数据库,然后返回值,供调用。
如果不想每条查询一次,可以提前做一个统一查询
$sql=mysql_query("select distinct Code from test ",$conn);
$sqlvalue=[];
while($row=mysql_fetch_array($sql)){
$sqlvalue[]=$row['Code'];
}
另外 ,可以在建表的时候设置unique index,来彻底避免插入重复记录,如果没过滤好插入重复记录的时候,系统会直接报错