0

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

4

2 回答 2

2

如果数据库在同一台主机上,并且用户可以访问两者,您可以轻松地交换数据,如下所示:

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);

然后查询数据库 1,执行以下操作:

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");
于 2012-11-20T10:10:04.387 回答
0

可以通过插入选择组合

考虑以下示例。

 INSERT INTO tbl_temp2 (fld_id)
 SELECT tbl_temp1.fld_order_id
 FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
于 2012-11-20T10:03:49.707 回答