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