连接到2个数据库同时将字段复制到第二个数据库

时间:2012-09-22 18:07:22

标签: php mysql database

我的表中有一个字段,我需要移动到一个完全不同的数据库。此时,我有1个数据库db1,其db1table包含所有数据,而空数据库db2包含db2table

db1表如下所示:

id    other_db_id     data_to_be_moved
---------------------------------------
1     NULL            data
2     NULL            data 
3     NULL            data 
4     NULL            data
5     NULL            data

db2表看起来像这样:

id      data
--------------
empty

我通常使用ORM来访问数据库,但这次我使用普通的mysql和php进行操作,所以需要一些帮助,尤其是我如何同时连接到2个数据库。

我想要做的是从db1 table中选择前10条记录,阅读字段data_to_be_moved并使用它在db2 table中创建新记录。然后获取新插入记录的id并将其作为字段other_db_id插回到原始数据库中。

我连接到单个数据库的方式是这样的。我如何同时访问这两个数据库?

$connection = mysql_connect("localhost", "db1user","db1pass");
mysql_select_db("db1", $connection);

我正在选择要操作的前10条记录,如下所示:

Select * From table Where Id BETWEEN 5 AND 10;

但我不知道如何继续切换数据库以实现我上面描述的内容。

4 个答案:

答案 0 :(得分:1)

基本上你需要知道如何处理多个数据库。 以下视频将说明如何处理两个(或更多)数据库:video

答案 1 :(得分:1)

您可以将中间值存储到PHP变量中,然后切换数据库并执行操作。

答案 2 :(得分:0)

如果数据库位于同一服务器上,则可以使用语法

同时访问这两个表
insert into db2.db2table
select other_db_id, data_to_be_moved
from db1.db1table;

这要求登录至少具有对其他数据库的选择权。

如果数据库位于不同的服务器上,则可以使用联合表:

http://dev.mysql.com/doc/refman/5.0/en/federated-use.html

答案 3 :(得分:0)

嗯,

$connection2 = mysql_connect("localhost", "db2user","db2pass");