Nasıl bir test DB herhangi bir tablodan tüm verileri almak ve aynı tabloismi (yapısı) üretim db üzerinde DÖKÜMÜ edebilir?

2 Cevap php

Nasıl bir test DB herhangi bir tablodan tüm verileri almak ve aynı tabloismi (yapısı) üretim db üzerinde DÖKÜMÜ edebilir? MySQL PHP kodu kullanarak?

Lütfen bana yardımcı olun ..

EDIT

Ben MySQL sorguları kullanarak benim için bunu yapmak için PHP gerekiyor

2 Cevap

Üzgünüm, biraz dağınık ama bunlar masa yeniden yapılanma ve Repopulating için SQL kodu oluşturmak için kullanabileceğiniz işlevleri vardır. Bu, tüm bir 'tablo' nesnesi içinde ama neler araya eminim.

SQL "Tablo yourtablename CREATE" Seni tekrar tablo oluşturmak için gereken her şeyi verir. Gerisi sadece tüm girişleri döngü ve INSERT deyimleri yapıyor.

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;
}

Tabloyu yeniden SQL kodunu oluşturarak damping kastınız, ben böyle phpMyAdmin veya Adminer olarak MySQL yönetmek için mevcut araçlarını kullanarak düşündüren olur.