[通过PHP]仅将一个表从数据库导入/导出到另一个表

[通过PHP]仅将一个表从数据库导入/导出到另一个表,php,mysql,sql,database,phpmyadmin,Php,Mysql,Sql,Database,Phpmyadmin,我只想从我的数据库中导出一个表,然后通过PHP将其导入另一个数据库,我在phpMyAdmin中尝试了这一点,我在.sql(和gzip)中从sql-1导出,然后导入到sql-2,但导出完成后,只会显示一个空白页。所以我想通过PHP实现这一点。我有整个数据库的导出/导入代码,但我只想导入/导出一个特定的表 这是我的密码: 导入: <?php //ENTER THE RELEVANT INFO BELOW $mysqlDatabaseName ='db123456789'; $mysqlUser

我只想从我的数据库中导出一个表,然后通过PHP将其导入另一个数据库,我在phpMyAdmin中尝试了这一点,我在.sql(和gzip)中从sql-1导出,然后导入到sql-2,但导出完成后,只会显示一个空白页。所以我想通过PHP实现这一点。我有整个数据库的导出/导入代码,但我只想导入/导出一个特定的表

这是我的密码:

导入:

<?php
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='db123456789';
$mysqlUserName ='dbo123456789';
$mysqlPassword ='yourPassword';
$mysqlHostName ='db1234.perfora.net';
$mysqlImportFilename ='yourMysqlBackupFile.sql';

//DO NOT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
?>
<?php
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='db123456789';
$mysqlUserName ='dbo123456789';
$mysqlPassword ='myPassword';
$mysqlHostName ='db1234.perfora.net';
$mysqlExportPath ='chooseFilenameForBackup.sql';

//DO NOT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ~/' .$mysqlExportPath;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Database <b>' .$mysqlDatabaseName .'</b> successfully exported to <b>~/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'There was a warning during the export of <b>' .$mysqlDatabaseName .'</b> to <b>~/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'There was an error during export. Please check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>

导出:

<?php
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='db123456789';
$mysqlUserName ='dbo123456789';
$mysqlPassword ='yourPassword';
$mysqlHostName ='db1234.perfora.net';
$mysqlImportFilename ='yourMysqlBackupFile.sql';

//DO NOT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
?>
<?php
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='db123456789';
$mysqlUserName ='dbo123456789';
$mysqlPassword ='myPassword';
$mysqlHostName ='db1234.perfora.net';
$mysqlExportPath ='chooseFilenameForBackup.sql';

//DO NOT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ~/' .$mysqlExportPath;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Database <b>' .$mysqlDatabaseName .'</b> successfully exported to <b>~/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'There was a warning during the export of <b>' .$mysqlDatabaseName .'</b> to <b>~/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'There was an error during export. Please check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>

为什么不直接使用MySQL呢

创建表格您的新表格名称。您的新表格名称与您的旧表格名称相同


插入您的\u新\u db\u名称。您的\u新\u表\u名称从您的\u db\u名称中选择*。您的\u旧\u表\u名称

它不是一个简单的表,它包含数据。我应该先导出然后导入,我怀疑这段代码是否会导出一个表,然后才能导入到新的数据库。如果我错了,请告诉我。如果两个数据库都在同一台服务器上,并且可以由同一用户访问,那么它应该可以工作。请注意,您需要在查询中同时指向两个数据库(您的\u NEW\u db\u名称。您的\u NEW\u table\u名称)我在上述代码中看不到您的\u NEW\u db\u名称(答案)。。这只是一张新桌子。毕竟,我测试了你的代码,它出现了错误。。。您应该用数据库名和表名替换示例值。如果它不能以这种方式工作,请尝试其他方法…@SamuilBanti您甚至可以在一个语句中完成它(如果您提到的要求已给出):
创建表您的新表\u db\u名称。您的新表\u名称从您的表\u名称中选择*。您的旧表\u名称请阅读。你必须编辑这行代码下面的内容…我搞不懂。我不熟悉sql和php,这与sql或php没有多大关系。您正在配置mysqldump的命令行选项。我引用了手册中的第一行语法:shell>mysqldump[options]db_name[tbl_name…]