Php 如何从测试数据库的任何表中获取所有数据,并将其转储到生产数据库的同一tablename(结构)中?

Php 如何从测试数据库的任何表中获取所有数据,并将其转储到生产数据库的同一tablename(结构)中?,php,mysql,mysqldump,Php,Mysql,Mysqldump,如何从测试数据库的任何表中获取所有数据并将其转储到同一tablenamestructure中的生产数据库中?在Mysql中使用PHP代码 请帮帮我 编辑 我需要PHP使用MySQL查询来实现这一点如果您指的是转储创建SQL代码来重新创建表,我建议使用现有的工具来管理MySQL,如phpMyAdmin或Adminer。抱歉,有点混乱,但这些是我用于构建用于表重建和重新填充的SQL代码的函数。这一切都在一个“表”对象中,但我相信你可以把发生的事情拼凑起来 SQL SHOW CREATE TABLE

如何从测试数据库的任何表中获取所有数据并将其转储到同一tablenamestructure中的生产数据库中?在Mysql中使用PHP代码

请帮帮我

编辑


我需要PHP使用MySQL查询来实现这一点

如果您指的是转储创建SQL代码来重新创建表,我建议使用现有的工具来管理MySQL,如phpMyAdmin或Adminer。

抱歉,有点混乱,但这些是我用于构建用于表重建和重新填充的SQL代码的函数。这一切都在一个“表”对象中,但我相信你可以把发生的事情拼凑起来

SQL SHOW CREATE TABLE yourtablename提供了再次创建表所需的一切。其余的只是循环遍历所有条目并生成INSERT语句

public function backup() {
    $output = "/* - - - Table recovery for $this->tablename - - - */\n\n\n";
    $output .= "DROP TABLE IF EXISTS `$this->tablename`;\n\n";
    $output .= $this->showcreate().';';
    $output .= $this->showrepopulate();
    return $output."\n\n\n";
}        


final protected function showcreate() {
    $result = $this->query("SHOW CREATE TABLE $this->tablename");
    return $result[0]['Create Table'];
}

final protected function showrepopulate() {
    $result = $this->query("SELECT * FROM $this->tablename");
    $output = '';
    $count = count($result);
    if ($count) {
        $output = "\n\nINSERT INTO `$this->tablename` VALUES\n";
        for ($i=0; $i<$count; $i++) {
            $output .= "(";
            $numfields = count($result[$i]);
            for ($j=0; $j<$numfields; $j++) {
                if ($j>0) $output .= ',';
                $output .= $this->Database->escape(array_shift($result[$i]));
            }
            $output .= ")";
            $output .= ($i != $count-1) ? ",\n" : ';';
        }
    }
    return $output;
}

我需要PHP使用MySQL查询为我做到这一点如果您使用的是InnoDB,并且该表在外键中使用,您可能希望在导入之前禁用外键检查,否则它将失败。但是:请确保在导入之前检查您的外键,因为MySQL将愉快地处理不一致的数据,即使您重新打开外键检查。。。好的一面是:您可以使用上的存储过程在导入后检查数据。