function sqldumptable($table, $fp=0) {
global $DB; $tabledump = "DROP TABLE IF EXISTS $table;\n";
$tabledump .= "CREATE TABLE $table (\n"; $firstfield=1; $fields = $DB->query("SHOW FIELDS FROM $table");
while ($field = $DB->fetch_array($fields)) {
if (!$firstfield) {
$tabledump .= ",\n";
} else {
$firstfield=0;
}
$tabledump .= " $field[Field] $field[Type]";
if (!empty($field["Default"])) {
$tabledump .= " DEFAULT '$field[Default]'";
}
if ($field['Null'] != "YES") {
$tabledump .= " NOT NULL";
}
if ($field['Extra'] != "") {
$tabledump .= " $field[Extra]";
}
}
$DB->free_result($fields); $keys = $DB->query("SHOW KEYS FROM $table");
while ($key = $DB->fetch_array($keys)) {
$kname=$key['Key_name'];
if ($kname != "PRIMARY" and $key['Non_unique'] == 0) {
$kname="UNIQUE|$kname";
}
if(!is_array($index[$kname])) {
$index[$kname] = array();
}
$index[$kname][] = $key['Column_name'];
}
$DB->free_result($keys); while(list($kname, $columns) = @each($index)){
$tabledump .= ",\n";
$colnames=implode($columns,","); if ($kname == "PRIMARY") {
$tabledump .= " PRIMARY KEY ($colnames)";
} else {
if (substr($kname,0,6) == "UNIQUE") {
$kname=substr($kname,7);
}
$tabledump .= " KEY $kname ($colnames)";
}
} $tabledump .= "\n);\n\n";
if ($fp) {
fwrite($fp,$tabledump);
} else {
echo $tabledump;
} $rows = $DB->query("SELECT * FROM $table");
$numfields = mysql_num_fields($rows);
while ($row = $DB->fetch_array($rows)) {
$tabledump = "INSERT INTO $table VALUES("; $fieldcounter=-1;
$firstfield=1;
while (++$fieldcounter<$numfields) {
if (!$firstfield) {
$tabledump.=", ";
} else {
$firstfield=0;
} if (!isset($row[$fieldcounter])) {
$tabledump .= "NULL";
} else {
$tabledump .= "'".mysql_escape_string($row[$fieldcounter])."'";
}
} $tabledump .= ");\n"; if ($fp) {
fwrite($fp,$tabledump);
} else {
echo $tabledump;
}
}
$DB->free_result($rows);
}
global $DB; $tabledump = "DROP TABLE IF EXISTS $table;\n";
$tabledump .= "CREATE TABLE $table (\n"; $firstfield=1; $fields = $DB->query("SHOW FIELDS FROM $table");
while ($field = $DB->fetch_array($fields)) {
if (!$firstfield) {
$tabledump .= ",\n";
} else {
$firstfield=0;
}
$tabledump .= " $field[Field] $field[Type]";
if (!empty($field["Default"])) {
$tabledump .= " DEFAULT '$field[Default]'";
}
if ($field['Null'] != "YES") {
$tabledump .= " NOT NULL";
}
if ($field['Extra'] != "") {
$tabledump .= " $field[Extra]";
}
}
$DB->free_result($fields); $keys = $DB->query("SHOW KEYS FROM $table");
while ($key = $DB->fetch_array($keys)) {
$kname=$key['Key_name'];
if ($kname != "PRIMARY" and $key['Non_unique'] == 0) {
$kname="UNIQUE|$kname";
}
if(!is_array($index[$kname])) {
$index[$kname] = array();
}
$index[$kname][] = $key['Column_name'];
}
$DB->free_result($keys); while(list($kname, $columns) = @each($index)){
$tabledump .= ",\n";
$colnames=implode($columns,","); if ($kname == "PRIMARY") {
$tabledump .= " PRIMARY KEY ($colnames)";
} else {
if (substr($kname,0,6) == "UNIQUE") {
$kname=substr($kname,7);
}
$tabledump .= " KEY $kname ($colnames)";
}
} $tabledump .= "\n);\n\n";
if ($fp) {
fwrite($fp,$tabledump);
} else {
echo $tabledump;
} $rows = $DB->query("SELECT * FROM $table");
$numfields = mysql_num_fields($rows);
while ($row = $DB->fetch_array($rows)) {
$tabledump = "INSERT INTO $table VALUES("; $fieldcounter=-1;
$firstfield=1;
while (++$fieldcounter<$numfields) {
if (!$firstfield) {
$tabledump.=", ";
} else {
$firstfield=0;
} if (!isset($row[$fieldcounter])) {
$tabledump .= "NULL";
} else {
$tabledump .= "'".mysql_escape_string($row[$fieldcounter])."'";
}
} $tabledump .= ");\n"; if ($fp) {
fwrite($fp,$tabledump);
} else {
echo $tabledump;
}
}
$DB->free_result($rows);
}
1. mydb.php //DB类
2. backup.php //备份脚本
3. restore.php //还原脚本(From:OK.绷)只要配置一下
backup.php和restore.php
的第3~7行