gpt4 book ai didi

php - 如何将表从远程服务器上的一个表复制到另一个远程数据库上的表?

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:41 25 4
gpt4 key购买 nike

我在 2 个不同的服务器上有匹配的数据库(mysql 复制不是一个选项)。我需要查看一个 table2 中是否缺少一条记录,如果是,则截断 table2,然后从 table1 复制到 table2。每个表都在不同的 IP/服务器上。

代码:

            $pdoyd = new PDO(
'mysql:host=' . DB_HOST_YODA . ';dbname=' . DB_DATABASE_DNS,
DB_USER_DNS,
DB_PASSWORD
);
$pdoyd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdoyd->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$truntbl = array('cryptokeys', 'domains', 'records');
foreach($truntbl as $tbl){
$sql = 'truncate '.$tbl;
$statementyd = $pdoyd->prepare($sql);
$useryd = $statementyd->execute();
var_dump($statementyd);
echo '<br>';
}

将丢失的记录从一台服务器上的一个表复制到另一台服务器上的另一个表的有效方法是什么?

最佳答案

您可以打开两个连接。使用一个从源服务器读取,另外两个插入目标服务器。使用 ON DUPLICATE KEY IGNORE 选项来防止在您尝试覆盖现有行时出现错误,因此它只会插入缺失的行。

$pdo1 = new PDO('mysql:host=server1;dbname=xxx', $username1, $password1);
$pdo2 = new PDO('mysql:host=servrer2; dbname=xxx', $username2, $password2);

$insert_stmt = $pdo2->prepare("INSERT INTO yourTable (col1, col2, col3, ...) VALUES (:col1, :col2, :col3, ...) ON DUPLICATE KEY IGNORE");
$select_results = $pdo1->query("SELECT * FROM yourTable");
while ($row = $select_results->fetch(PDO::FETCH_ASSOC)) {
$insert_stmt->execute($row);
}

关于php - 如何将表从远程服务器上的一个表复制到另一个远程数据库上的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832260/

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