プロジェクトに取り組んでいます PHP を使用して、1 つのデータベース サーバーから値を取得し、他のデータベース サーバーに保存するにはどうすればよいですか?
3054 次
2 に答える
2
データベースが同じホスト上にあり、ユーザーが両方にアクセスできる場合、次のように簡単にデータを交換できます。
INSERT INTO database2.table1 (*fields*)
SELECT *fields* FROM database1.table1
テーブル内のフィールドのリストでフィールドを置き換えます。このクエリはテーブル全体を取得するため、時間がかかる場合があることに注意してください。
データベースが異なるホスト上にある場合、またはその他の理由で 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);
次に、データベース 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 に答える