各ユーザーに対して 1 つのデータベースを持つように、アプリケーションを誤って設計しました。各ユーザーには 3 つの同様のテーブルがありました。私は今、1 つのデータベースと 3 つのテーブルだけを持ちたいと思っています。ここで、古いデータベースのデータベース名を新しいシステムの参照として使用します。古いデータベースには、データベース名を格納する「users」という別のデータベースがありました。新しいデータベースのスキーマ設計が完了し、移行作業が残りました。
ここでの秘訣は、3 つの db 接続があることです。最初に users データベースと userinfo テーブルに接続し、database_name をループで取得し、それを使用して各古いデータベースに接続し、さらに個人、アカウント、およびゲーム テーブルに接続します。
テーブルを取得した後、古いデータベース名を新しいテーブルに追加しながら、新しいデータベース (DATA_ONE) とテーブルを作成/結合したいと考えています。これに関するヘルプ、またはこれを行うためのより良い方法はありますか? どうもありがとう
<?php
$dbhost = "localhost";
$dbname = "users";
$dbuser = "root";
$dbpass = "*****";
$conn1 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die("MySQL Error: " . mysql_error());
$conn2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die("MySQL Error: " . mysql_error());
$conn3 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die("MySQL Error: " . mysql_error());
mysql_select_db($dbname,$conn1) or die("MySQL Error: " . mysql_error());
$query = "SELECT database_name FROM userinfo";
$result1 = mysql_query($query,$conn1);
while($row = mysql_fetch_array($result1, MYSQL_ASSOC))
{
$database_name =$row['database_name'];
$conn2 = mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());
$db = mysql_select_db($database_name ,$conn2) ;
// now, pick personal, accounts, games tables of user and populate new database and tables.
// this is where i need help.
}
?>