如何从同一个表名(结构)中的生产数据库中的测试数据库和DUMP的任何表中获取所有数据?

时间:2010-04-22 06:42:25

标签: php mysql mysqldump

如何从同一个表名(结构)中的生产数据库中的测试数据库和DUMP的任何表中获取所有数据?在Mysql中使用PHP代码?

请帮帮我..

  

修改

我需要PHP使用MySQL查询为我做这个

2 个答案:

答案 0 :(得分:1)

抱歉,有点杂乱,但这些是我用来构建用于表重建和重新填充的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;
}

答案 1 :(得分:0)

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