<?
////////////////////////////////////////////////////////////////////////////////
// 功能:数据库备份 //
// 文件名:mysql_backup.php //
// 执行本文件将备份指定数据库中所有表与数据 //
///////////////////////////////////////////////////////////////////////////////
header("content-type:text/html; charset=UTF-8");
set_time_limit(0);
//----------------------------------------------------------------------------
// 下载已生成的文本文件
// 如果点击了下面的超链接,则运行以下内容,否则跳过
//----------------------------------------------------------------------------
if(trim($_GET["filename"])<>"")
{
$upload_file = trim($_GET["filename"]);
//判断下载文件类型是否合法,此限制只能下载以.sql为后缀的文件
if ( substr(strtolower(trim($_GET["filename"])),-4)<>".sql" ) {
echo "文件类型不匹配";
exit;
}
if (!file_exists($upload_file)) {
echo "找不到文件";
}else{
$fp = fopen($upload_file,"r");
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $upload_file);
while (!feof ($fp)) {
echo fread($fp,50000);
}
fclose($fp);
}
exit;
}
//----------------------------------------------------------------------------
$host="localhost"; //主机名
$user="root"; //MYSQL用户名
$password=""; //密码
$dbname="mysql"; //在此指定您要备份的数据库名,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
//创建数据库备份目录
$path = "MySQL_Backup/";
if(! file_exists($path)){
mkdir($path);
}
//生成文本文件名称
$filename=$path.$dbname."_".date('Ymd').".sql";
$fp = fopen($filename,'w');
echo "<p>正在备份数据库 $dbname 中,请等待...</p>";
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1))
{
$table=$t[0];
echo $table."<br>";//输出数据库表名称
$q2=mysql_query("show create table `$table`");
$sql=mysql_fetch_array($q2);
$mysql="\r\n"."DROP TABLE IF EXISTS `$table`;\r\n"; //写入判断数据库表是否存在,如果存在则删除的命令
fwrite($fp, $mysql);
$mysql="\r\n".$sql['Create Table'].";\r\n\r\n"; //写入生成数据库表
fwrite($fp, $mysql);
$q3=mysql_query("select * from `$table`"); //循环表,写入表中数据命令
while($data=mysql_fetch_assoc($q3))
{
$keys="";
$vals="";
$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);\r\n"; //写入表中数据记录
fwrite($fp, $mysql);
}
}
fclose($fp);
echo "<p>数据备份成功,<a href='?filename=$filename' target=_blank>点击这里下载 $filename</a></p>";
?>
////////////////////////////////////////////////////////////////////////////////
// 功能:数据库备份 //
// 文件名:mysql_backup.php //
// 执行本文件将备份指定数据库中所有表与数据 //
///////////////////////////////////////////////////////////////////////////////
header("content-type:text/html; charset=UTF-8");
set_time_limit(0);
//----------------------------------------------------------------------------
// 下载已生成的文本文件
// 如果点击了下面的超链接,则运行以下内容,否则跳过
//----------------------------------------------------------------------------
if(trim($_GET["filename"])<>"")
{
$upload_file = trim($_GET["filename"]);
//判断下载文件类型是否合法,此限制只能下载以.sql为后缀的文件
if ( substr(strtolower(trim($_GET["filename"])),-4)<>".sql" ) {
echo "文件类型不匹配";
exit;
}
if (!file_exists($upload_file)) {
echo "找不到文件";
}else{
$fp = fopen($upload_file,"r");
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $upload_file);
while (!feof ($fp)) {
echo fread($fp,50000);
}
fclose($fp);
}
exit;
}
//----------------------------------------------------------------------------
$host="localhost"; //主机名
$user="root"; //MYSQL用户名
$password=""; //密码
$dbname="mysql"; //在此指定您要备份的数据库名,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
//创建数据库备份目录
$path = "MySQL_Backup/";
if(! file_exists($path)){
mkdir($path);
}
//生成文本文件名称
$filename=$path.$dbname."_".date('Ymd').".sql";
$fp = fopen($filename,'w');
echo "<p>正在备份数据库 $dbname 中,请等待...</p>";
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1))
{
$table=$t[0];
echo $table."<br>";//输出数据库表名称
$q2=mysql_query("show create table `$table`");
$sql=mysql_fetch_array($q2);
$mysql="\r\n"."DROP TABLE IF EXISTS `$table`;\r\n"; //写入判断数据库表是否存在,如果存在则删除的命令
fwrite($fp, $mysql);
$mysql="\r\n".$sql['Create Table'].";\r\n\r\n"; //写入生成数据库表
fwrite($fp, $mysql);
$q3=mysql_query("select * from `$table`"); //循环表,写入表中数据命令
while($data=mysql_fetch_assoc($q3))
{
$keys="";
$vals="";
$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);\r\n"; //写入表中数据记录
fwrite($fp, $mysql);
}
}
fclose($fp);
echo "<p>数据备份成功,<a href='?filename=$filename' target=_blank>点击这里下载 $filename</a></p>";
?>
文章来源:桂林唯创网络