· 8 years ago · Jan 11, 2018, 07:30 AM
1<?php
2
3$sourceDbName = 'src';
4$destinationDbName = 'dest';
5$connection = new PDO('mysql:host=hostname;dbname=' . $sourceDbName, 'user', 'password');
6
7$tables = $connection->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
8$connection->exec("USE {$destinationDbName}");
9
10foreach ($tables as $tableName) {
11 $createCommand = $connection->query("SHOW CREATE TABLE `{$sourceDbName}`.`{$tableName}`")->fetchColumn(1);
12 $carefulCreateCommand = str_replace("CREATE TABLE", "CREATE TABLE IF NOT EXISTS", $createCommand);
13
14 $connection->exec($carefulCreateCommand);
15 echo "Table `{$tableName}` created" . PHP_EOL;
16
17 $connection->exec("INSERT INTO `{$destinationDbName}`.`{$tableName}` SELECT * FROM `{$sourceDbName}`.`{$tableName}`");
18 echo "Data for table `{$tableName}` copied" . PHP_EOL;
19}