嗨我需要一些帮助,我想要做的是使用这样的插入选择语句,其中数据库位于差异服务器上。
insert into db1.copy2 (c1,c2) select c1,c2 from db2.copy2;
db1在亚马逊网络服务关系数据库上,而db2在本地主机上(wamp)我如何制作一个可以容纳两个这样的数据库的PHP脚本,这将允许我执行这样的查询。此脚本将在本地主机上执行 谢谢..
答案 0 :(得分:2)
有许多用于在数据库服务器之间同步或复制数据的软件,也许您应该使用其中之一。否则你可以分两步完成
伪代码中的
$sql = "select c1,c2 from db2.copy2";
$Results = pdofetchall($sql);
foreach ($Results as $row){
$c1 = $row['c1'];
$c2 = $row['c2'];
$InsertSQL = "insert into db1.copy2 VALUES($c1,$c2) ";
executesql($InsertSQL);
}
请注意,这是伪代码,并且无法复制和粘贴,但为您提供了您需要做的事情的要点。
答案 1 :(得分:0)
您有3个选项:
FEDERATED存储引擎允许您从远程MySQL访问数据 不使用复制或集群技术的数据库。查询一个 本地FEDERATED表自动从远程数据中提取数据 (联合)表。没有数据存储在本地表中。
此解决方案将启用您在问题中使用的语法。
同样,您必须启用2台服务器之间的直接连接,并设置replication between the 2 servers,essentialky确保将localhost上的可用数据复制到amazon服务器。该查询将在亚马逊服务器上运行,并将查询复制的数据。
您可以通过直接连接到两个实例或在本地服务器上设置基于Web的api来合并来自2个数据源的php中的数据,该api可用于将数据从本地服务器传输到亚马逊。 / p>
答案 2 :(得分:-1)
如果 2数据库位于同一台服务器上,您可以轻松完成此操作,只需连接到一个数据库并轻松传递您的查询:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "insert into db1.copy2 (c1,c2) select c1,c2 from db2.copy2;";
这对你有用