两个php程序用户如何同步,同一目录下的两个CMS程序如何做到数据同步?

用户在基于ThinkPHP的BBS和EasyTalk CMS程序中进行交互时,希望帖子内容能实时同步。提出了两种方法:前端AJAX双请求和服务器端CURL。讨论了两者的优缺点,并提出在数据库层面利用MySQL触发器来实现跨库数据同步,以提高效率和可靠性。同时,建议直接在PHP后台处理,确保数据一致性。
摘要由CSDN通过智能技术生成

现在有两个基于thinkphp的CMS程序,bbs和easytalk:

http://127.0.0.1/bbs

http://127.0.0.1/bbs/easytalk

我想用户在bbs上回复的帖子内容同步在easytalk中,目前想到两种方法:

1.假定用户在bbs中回复一个帖子的是通过点击id=bbsReplyBtn执行ajax回复的,由于不存在跨域,可执行两次ajax:

$('#bbsReplyBtn').click(function(){

$.post('http://127.0.0.1/bbs',{reply:replyContent},function(){

$.post('http://127.0.0.1/bbs/easytalk',{reply:replyContent})

})

})

//这种方法要请求两次服务器,效率较低

2.通过curl在服务器端中将http://127.0.0.1/bbs的replyContent POST到http://127.0.0.1/bbs/easytalk中。

由于对thinkPHP没有太深入的研究,请问大神们有没有更好的方法实现数据同步?

回复内容:

现在有两个基于thinkphp的CMS程序,bbs和easytalk:

http://127.0.0.1/bbs

http://127.0.0.1/bbs/easytalk

我想用户在bbs上回复的帖子内容同步在easytalk中,目前想到两种方法:

1.假定用户在bbs中回复一个帖子的是通过点击id=bbsReplyBtn执行ajax回复的,由于不存在跨域,可执行两次ajax:

$('#bbsReplyBtn').click(function(){

$.post('http://127.0.0.1/bbs',{reply:replyContent},function(){

$.post('http://127.0.0.1/bbs/easytalk',{reply:replyContent})

})

})

//这种方法要请求两次服务器,效率较低

2.通过curl在服务器端中将http://127.0.0.1/bbs的replyContent POST到http://127.0.0.1/bbs/easytalk中。

由于对thinkPHP没有太深入的研究,请问大神们有没有更好的方法实现数据同步?

第一种方法依赖于前端, 有遗漏可能。 第二种也类似,依赖网络,且curl 可靠性不高。

你得直接写在 php 里, 操作用户在 A 或 B 有提交动作时,先后向两个数据表插入内容。

既然需求是数据同步,那你就可以在数据库里面直接操作,以 Mysql 为例,可以通过触发器机制来实现跨库同步。触发器使用可以参考这个答案:

http://segmentfault.com/q/1010000000485408#a-1020000000485714

没太明白楼主的意思,两个程序直接连接同一个数据库可否?

可以采用TP 自带的R 方法 在bbs 插入数据成功后调用一个接口方法 插入talk中.....PS 在 TP 3.1 版本中R有BUG 传递多维数组 数据会丢失.....自行修改..... 不修改可以才使用直接new 然后调用函数 传递参数

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值