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

基本的に、複数のデータベースを処理する方法を知っている必要があります。次のビデオでは、2 つ (またはそれ以上) のデータベースを処理する方法について説明します。

于 2012-09-22T18:10:54.737 に答える
1

中間値を PHP 変数に格納してから、データベースを切り替えて処理を行うことができます。

于 2012-09-22T18:12:12.380 に答える
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 に答える
0

うーん、

$connection2 = mysql_connect("localhost", "db2user","db2pass");
于 2012-09-22T18:47:10.313 に答える