我的一位用户遇到以下问题:他们在两个不同的位置都有两家商店,每个地方都有自己的数据库,但是,他们需要共享客户群和注册出售的物料清单。目前,我们要做的是当客户注册一个新客户时,在另一个位置的数据库上创建一个副本。由于互联网连接不稳定,因此问题很快出现。如果在注册时互联网中断,它将尝试进行复制,失败并携带不一致的数据库。
我考虑过通过将管理两个数据库的Pdo事务对数据库进行更新,但是似乎每个数据库都需要一个新的PDO $dbh1= new PDO('mysql:host=xxxx;dbname=test',$user,$pass);
实例,而且我看不到提交两个更新的方法。看着这个相关问题what is the best way to do distributed transactions across multiple databases,似乎我需要一些翻译管理。 PDO可以实现吗?
最佳答案
不,PDO无法做任何类似于分布式事务的操作(无论如何,这是一个非常棘手的问题,没有灵丹妙药。)
通常,在存在网络分区(即参与者从网络掉线)的情况下,可以证明您无法同时实现一致性和可用性(对查询的保证响应)-请参见CAP theorem。
似乎您需要重新评估您的需求,并根据分析结果设计解决方案。为了横向扩展数据处理或存储,您必须从第一天开始就考虑扩展,并进行相应的计划。
关于php - 跨多个数据库进行PDO交易是否可行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19388876/