MySQL Database Table Copier
Use this utility to copy a table from one database to another. The destination database can be an existing one or new one (created at runtime). You can also mirror the table name or specify an alternate name (in case another table with that name exists in the destination database).
'.$destDB.'...
';
echo $qs="SHOW DATABASES LIKE '".$destDB."'";
$qDestDBexists=mysql_query($qs)or die(mysql_error());
echo '';
if(mysql_num_rows($qDestDBexists)==0){
echo 'Database does not exist.
';
echo 'Creating database
'.$destDB.'...
';
echo $qs="CREATE DATABASE ".$destDB;
$qCreateDestDB=mysql_query($qs)or die(mysql_error());
echo '------------
OK ------------
';
}else echo 'Database exists.
';
echo 'Copying table structure from
'.$srcDB.'.'.$srcTBL.'...
';
echo $qs="CREATE TABLE ".$destDB.".".$destTBL." LIKE ".$srcDB.".".$srcTBL;
$qCopyTbl=mysql_query($qs)or die(mysql_error());
echo '------------
OK ------------
';
echo 'Retrieving data from
'.$srcDB.'.'.$srcTBL.'...
';
echo $qs="SELECT * FROM ".$srcDB.".".$srcTBL;
$qSrcData=mysql_query($qs)or die(mysql_error());
echo '------------
OK ------------
';
$srcDataC=mysql_num_rows($qSrcData);
if($srcDataC==0)echo 'No data in source table (nothing to copy).
';
else{
$SRC_DATA=array();
while($row=mysql_fetch_assoc($qSrcData))
foreach($row as $col=>$val)$SRC_DATA[$row{'id'}][$col]="'".mysql_real_escape_string($val)."'";
echo 'Populating
'.$destDB.'.'.$destTBL.' with source data...
';
foreach($SRC_DATA as $rowID=>$rowData){
echo $qs="INSERT IGNORE INTO ".$destDB.".".$destTBL." (".implode(",",array_keys($SRC_DATA[$rowID])).
") VALUES (".implode(",",$SRC_DATA[$rowID]).")";
$qIns=mysql_query($qs)or die(mysql_error());
echo '
';
}
echo '------------
OK ------------
';
}
echo '
============ COPYING COMPLETE ============
';
echo 'Verifying copied data...
';
echo $qs="SELECT * FROM ".$destDB.".".$destTBL;
$qCopiedData=mysql_query($qs)or die(mysql_error());
echo '';
$destDataC=mysql_num_rows($qCopiedData);
echo ' Records in source table: '.$srcDataC.'
';
echo ' Records in destination table: '.$destDataC.'
';
echo (($srcDataC==$destDataC)?'Records counts match.':'
Record counts do not match!').'
';
if($destDataC>0){
echo '
View Record Data »';
$qs="SHOW COLUMNS FROM ".$destDB.".".$destTBL;
$qCols=mysql_query($qs)or die(mysql_error());
if(mysql_num_rows($qCols)==0)die("Unable to retrieve list of columns in
".$destDB.".".$destTBL."");
echo '
';
while($colData=mysql_fetch_assoc($qCols))echo '| '.$colData['Field'].' | ';
while($row=mysql_fetch_assoc($qCopiedData)){
echo '';
foreach($row as $col=>$val)echo '| '.$val.' | ';
echo '
';
}
echo '
';
}
?>
'.$_POST['srcDB'].'.'.$_POST['srcTBL'].'...
';
echo $qs="DROP TABLE ".$_POST['srcDB'].".".$_POST['srcTBL'];
$qDropSrcTbl=mysql_query($qs)or die(mysql_error());
echo '------------
OK ------------
';
echo '
============ ALL TASKS COMPLETE ============
';
echo '
';
}
?>