私はMySQLが初めてです。現在、既存の PHP Web サイトを、新しい Web ホスティングの両方のプロパティである SQL データベースで複製しようとしています。古い Web サイト データベースと同じ構造の新しい SQL データベースを作成し、新しい PHP Web サイトを新しいデータベースに接続したいと考えています。
PHP ファイルをデータベースに接続する方法は既に知っていますが、データベース テーブルを別のテーブルにコピーする方法がわかりません。
データベースを直接コピーするには、phpMyAdmin などのユーティリティを使用します。PHP を使用してプログラムで実行したくありません。これを見てください。
phpMyAdmin などのツールを使用せずにこれを行いたい場合はSHOW TABLES;
、SHOW CREATE TABLE table_name;
クエリを使用して、コピーするデータベースを反復処理できます。これを PHP スクリプトに入れると、次のようになります。
<?php
$host_name = "localhost";
$user_name = "xfiddlec_user";
$pass_word = "public";
$database_name = "xfiddlec_max";
$port = "3306";
$first_connect = new mysqli($host_name, $user_name, $pass_word, $database_name, $port);
//$second_connect = new mysqli($host_name2, $user_name2, $pass_word2, $database_name2, $port2);
$sql = "SHOW TABLES";
$result = $first_connect->query($sql);
if (($result) && ($result->num_rows > 0))
{
//convert query result into an associative array
while ($row = $result->fetch_row())
{
$sql2 = "SHOW CREATE TABLE {$row[0]}";
$res = $first_connect->query($sql2)->fetch_row();
//echo "<pre>"; print_r($res); echo "</pre>";
$createSQL = $res[1];
$second_connect->query($createSQL);
echo $createSQL;
}
}
PHP Fiddle here で試すことができるように、いくつかの部分にコメントを付けました。ただし、可能であれば、何らかのツールを使用することをお勧めします。:)