imvkmark
12/27/2014 - 9:28 AM

php.renameDb

php.renameDb

<?php
$cfg = array(
	'dbHost'    => '127.0.0.1',
	'dbUser'    => 'root',
	'dbPwd'     => '',
	'oldDbName' => 'ixdcw_v11',
	'newDbName' => 'ixdcw_v12',
	'oldTbPre'  => 'mk_',
	'newTbPre'  => 'lm_',
	'execute'   => false,
);
$db      = new PDO("mysql:host={$cfg['dbHost']};dbname={$cfg['oldDbName']}", $cfg['dbUser'], $cfg['dbPwd']);
$result  = $db->query("show tables");
$tables  = $result->fetchAll();
foreach ($tables as $tableCtr) {
	$tablename = $tableCtr['Tables_in_' . $cfg['newDbName']];
	$sql       = "ALTER TABLE $tablename RENAME TO " . str_replace($cfg['oldTbPre'], $cfg['newTbPre'], $tablename);
	$sql       = "RENAME TABLE {$cfg['oldDbName']}.{$tablename} TO {$cfg['newDbName']}.{$tablename};";
	if ($cfg['execute']) {
		if ($db->query($sql)) {
			continue;
		} else {
			exit($db->errorInfo());
		}
	} else {
		echo $sql . PHP_EOL;
	}
}