使用PHP从一个数据库服务器检索值并将其存储在另一个数据库服务器中?

使用PHP从一个数据库服务器检索值并将其存储在另一个数据库服务器中?,php,mysql,sql,Php,Mysql,Sql,我在做一个项目 如何使用PHP从一个数据库服务器检索值并将其存储在另一个数据库服务器中?可以通过插入-选择组合来实现 考虑下面的例子 INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; 如果数据库位于同一台主机上,并且用户可以访问这两台主机,则可以像这样轻松地交换数据: INSERT INTO database2

我在做一个项目
如何使用PHP从一个数据库服务器检索值并将其存储在另一个数据库服务器中?

可以通过插入-选择组合来实现

考虑下面的例子

 INSERT INTO tbl_temp2 (fld_id)
 SELECT tbl_temp1.fld_order_id
 FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

如果数据库位于同一台主机上,并且用户可以访问这两台主机,则可以像这样轻松地交换数据:

INSERT INTO database2.table1 (*fields*) 
SELECT *fields* FROM database1.table1
用表中的字段列表替换字段。 请注意,此查询将获取整个表,可能需要一些时间

如果数据库位于不同的主机上,或者由于任何其他原因,您无法仅通过一个连接同时连接到这两个主机,请执行以下操作:

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 
//the fourth parameter makes sure that a new link is opened as if the parameters are the same, php will grab the old connection instead of creating one.

mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
mysql_query('select * from tablename', $dbh1);
然后,要查询数据库1,请执行以下操作:

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 
//the fourth parameter makes sure that a new link is opened as if the parameters are the same, php will grab the old connection instead of creating one.

mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
mysql_query('select * from tablename', $dbh1);
对于数据库2:

mysql_query('select * from tablename', $dbh2);
。。。或者在PDO中

$database1 = new PDO('mysql:dbname=database1name;host=127.0.0.1', 'username', 'password');
$database2 = new PDO('mysql:dbname=database2name;host=127.0.0.1', 'username', 'password');
$result1 = $database1->query("select * from tablename");
$result2 = $database2->query("select * from tablename");

请使用
PDO
而不是mysql_uu方法。您对这两个数据库都使用了
select
query!您是对的,这里的目标是显示可以连接到两个数据库,并在同一脚本中查询它们,即使它们距离较远。我把更新的逻辑留给了OP.@salketter,OP讨论了2个不同的数据库服务器,而不仅仅是2个数据库,对吗?然而,公认的答案只回答了同一服务器上2个数据库的问题。但你为什么要问这个问题?您遇到的类似问题是否缺少答案?OP讨论了两个不同的数据库服务器。这怎么可能是公认的答案?