The following two methods are available for research use only.
The 1th method:
Copy Code code as follows:
<?php
$host = "localhost";
$user = "root";
$password = "";
$dbname = "dbname";
Mysql_connect ($host, $user, $password);
mysql_select_db ($dbname);
$mysql = "Set names UTF8;";
mysql_query ($mysql);
$q 1=mysql_query ("Show Tables");
while ($t =mysql_fetch_array ($q 1)) {
$table = $t [0];
$q 2=mysql_query ("Show create Table ' $table '");
$sql =mysql_fetch_array ($q 2);
$mysql. = $sql [' Create Table ']. " n ";
$q 3=mysql_query ("select * from ' $table");
while ($data =mysql_fetch_assoc ($q 3)) {
$keys =array_keys ($data);
$keys =array_map (' addslashes ', $keys);
$keys =join (', ', $keys);
$keys = "'. $keys." `";
$vals =array_values ($data);
$vals =array_map (' addslashes ', $vals);
$vals =join ("', '", $vals);
$vals = "'" $vals. "'";
$mysql. = "INSERT INTO ' $table ' ($keys) values ($vals); \ n";
}
$mysql. = "\ n";
}
$filename = $dbname. Date (' YMJ '). SQL ";
$fp = fopen ($filename, ' w ');
Fputs ($fp, $mysql);
Fclose ($FP);
echo "Data backup succeeded, generate backup file". $filename;
?>
The 2nd method:
Copy Code code as follows:
<?php
$host = "localhost";
$user = "root";
$password = "";
$dbname = "dbname";
Backup_tables ($host, $user, $password, $dbname);
/* Backup the DB OR just a table */
function Backup_tables ($host, $user, $pass, $name, $tables = ' * ')
{
$link = mysql_connect ($host, $user, $pass);
mysql_select_db ($name, $link);
Get all of the tables
if ($tables = = ' * ')
{
$tables = Array ();
$result = mysql_query (' show TABLES ');
while ($row = Mysql_fetch_row ($result))
{
$tables [] = $row [0];
}
}
Else
{
$tables = Is_array ($tables)? $tables: Explode (', ', $tables);
}
$return = ';
Cycle through
foreach ($tables as $table)
{
$result = mysql_query (' SELECT * from '. $table);
$num _fields = Mysql_num_fields ($result);
$return. = ' DROP TABLE '. $table. ';
$row 2 = mysql_fetch_row (mysql_query (' Show CREATE TABLE '. $table));
$return. = "\ n \ nyou". $row 2[1]. " N\n ";
for ($i = 0; $i < $num _fields; $i + +)
{
while ($row = Mysql_fetch_row ($result))
{
$return. = ' INSERT into '. $table. ' VALUES (';
for ($j =0; $j < $num _fields; $j + +)
{
$row [$j] = Addslashes ($row [$j]);
$row [$j] = ereg_replace ("\ n", "\\n", $row [$j]);
if (Isset ($row [$j])) {$return. = ' '. $row [$j]. ' ';} else {$return. = ' "';}
if ($j < ($num _fields-1)) {$return. = ', ';}
}
$return. = "); \ n";
}
}
$return. = "\n\n\n";
}
Save File
$handle = fopen (' db-backup-'. Time (). -'. (MD5 (Implode (', ', $tables)). " SQL ', ' w+ ');
Fwrite ($handle, $return);
Fclose ($handle);
}
?>