php - 同一目录下的两个CMS程序如何做到数据同步?
ringa_lee
ringa_lee 2017-04-10 14:46:18
[PHP讨论组]

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

  1. http://127.0.0.1/bbs
  2. 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没有太深入的研究,请问大神们有没有更好的方法实现数据同步?

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
PHPz

第一种方法依赖于前端, 有遗漏可能。 第二种也类似,依赖网络,且curl 可靠性不高。
你得直接写在 php 里, 操作用户在 A 或 B 有提交动作时,先后向两个数据表插入内容。

阿神

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

阿神

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

大家讲道理

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号