gpt4 book ai didi

php - 如何同步同一台机器上不同MySQL数据库的两个表?

转载 作者:行者123 更新时间:2023-11-29 08:33:22 25 4
gpt4 key购买 nike

我有 2 个不同的数据库,比如说 db_one 和 db_two。每人都有一张 table 。分别是 db1_emp_companydb2_emp_info

结构如下:

db_one           |    db_two
__________________________________
db1_emp_company | db2_emp_info
__________________________________
phone_no | contact_no
emp_email | email_add
home_address | address

这两个数据库由同一服务器上的两个不同的 php 网站托管。

我想同步不同数据库的这两个表。例如,如果用户更新 db1_emp_company(在 db_one 中)的 phone_no,则应更新 db2_emp_infocontact_no (在 db_two 中)。如果用户更新了 db1_emp_companyemp_email (在 db_one 中),它应该更新 db2_emp_infoemail_add (在db_two)。等等。

可能吗?

最佳答案

为此,您可以使用事务。

$mysql_host                 = DB_HOST;
$mysql_username = DB_USER;
$mysql_password = DB_PASSWORD;
$mysql_database1 = DATABASE1;
$mysql_database2 = DATABASE2;

$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password) or die( mysql_error());

/* Begin Transaction */
$mysqli->autocommit(FALSE);


/* Insert data from db1 to db2 */
$query = " INSERT INTO $mysql_database1.table1";

$a = $mysqli->query($query);

$query = " INSERT INTO $mysql_database1.table2
SELECT
*
FROM $mysql_database2.table2
WHERE NOT EXISTS(SELECT * from $mysql_database1.table2)
";
$d = $mysqli->query($query);


if ($a and $b)
{
$mysqli->commit();
echo "Data synched successfully.";
} else {

$mysqli->rollback();
echo "Data failed to synch.";
}

如果一个查询失败,它将不允许另一个查询运行并将回滚。这只是示例代码。您可以使用更新而不是插入。

关于php - 如何同步同一台机器上不同MySQL数据库的两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com