PHP Database Online Backup code
function sqldumptable ($table, $fp =0) {
$tabledump = "DROP TABLE IF EXISTS $table; n";
$tabledump. = "CREATE TABLE $table (n";
$firstfield = 1;
$fields = mysql_query ("Show fields from $table");
while ($field = Mysql_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]";
}
}
Mysql_free_result ($fields);
$keys = mysql_query ("Show Keys from $table");
while ($key = Mysql_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 '];
}
Mysql_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); nn";
if ($fp) {
Fwrite ($fp, $tabledump);
} else {
Echo $tabledump;
}
$rows = mysql_query ("SELECT * from $table");
$numfields = Mysql_num_fields ($rows);
while ($row = Mysql_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;
}
}
Mysql_free_result ($rows);
}
@mysql_connect ($servername, $dbusername, $dbpassword) or Die ("database connection failed");
@mysql_select_db ($dbname) or Die ("Select Database Failed");
$table = Array_flip ($_post[' table '));
$result = mysql_query ("Show Tables");
Echo ($result)? NULL: "Error:". Mysql_error ();
$filename = basename ($_server[' http_host '). " _mysql.sql ");
header (' Content-type:application/unknown ');
header (' content-disposition:attachment; filename= '; $filename);
$mysqldata = ';
while ($currow = mysql_fetch_array ($result)) {
if (isset ($table [$currow [0]]) {
& nbsp; $mysqldata. = sqldumptable ($currow [0]);
$mysqldata. = $mysqldata. " RN ";
}
}
mysql_close ();
exit;