0

我的表中有一个字段,我需要移动到一个完全不同的数据库。此时我有 1 个包含所有数据的数据库,以及db1一个包含.db1tabledb2db2table

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 个数据库。

我想做的是从 中选择前 10 条记录db1 table,读取该字段data_to_be_moved并使用它在 中创建新记录db2 table。然后获取新插入记录的 id 并作为 field 插入到原始数据库中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

4 回答 4

1

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

于 2012-09-22T18:10:54.737 回答
1

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

于 2012-09-22T18:12:12.380 回答
0

嗯,

$connection2 = mysql_connect("localhost", "db2user","db2pass");
于 2012-09-22T18:47:10.313 回答
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

于 2012-09-22T18:41:10.987 回答