Możesz otworzyć dwa połączenia. Użyj jednego, aby odczytać z serwera źródłowego, a pozostałe dwa wstaw do serwera docelowego. Użyj ON DUPLICATE KEY IGNORE
opcja zapobiegająca błędom podczas próby zastąpienia istniejących wierszy, dzięki czemu wstawia tylko brakujące wiersze.
$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);
}