<?php
require(dirname(__FILE__).'/config.php');
//备份
if(post_get('act', 1)=='bak'){
$file_name = $_POST['file'];
$bak_connection = db::factory('mysql');
$query = 'show tables';
$tables_arr = $bak_connection->get_array($query);
$file_content = '';
//遍历所有表
foreach($tables_arr as $value){
$table = $value['Tables_in_'.$current_conf['DBNAME']];
if(!empty($table)){
$query = 'show create table '.$table;
$file_content .= "DROP TABLE IF EXISTS `$table`;\r\n";
//表结构
$table_destruct = $bak_connection->get_array($query);
$file_content .= str_replace("\n", '', str_replace("\r\n", "\n", $table_destruct[0]['Create Table'])) . ";\r\n\r\n";
//$msg = $table.'表结构备份完毕';
//表数据
$query = 'SELECT * FROM '.$table;
$table_data = $bak_connection->get_array($query);
foreach($table_data as $key => $value){
$file_content .= "INSERT INTO `$table` VALUES('";
$value_arr = array_values($value);
$file_content .= implode("','" , $value_arr);
$file_content .= "');\r\n\r\n";
}
//$msg .= $table.'表数据备份完毕';
}
}
$file_content = iconv('GBK' , 'UTF-8' , $file_content);
/*
$fp = fopen($path , 'w') or die('文件不可写,或不存在');
fputs($fp , $file_content);
fclose($fp);
unset($fp);
*/
header("Content-type: text/plain");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=".$file_name);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header("Pragma: no-cache" );
header("Expires: 0" );
exit($file_content);
}
//还原
if(post_get('act', 1)=='restore'){
$sql_file = $_POST['file'];
$bak_connection = db::factory('mysql');
$fp = fopen($sql_file , 'r');
while(!feof($fp)){
$line = fgets($fp);
if(trim($line)!='' || trim($line)!=null){
$temp_line = iconv('utf-8' , 'gbk' , $line);
$result = $bak_connection->execute($temp_line);
if($result){
redirect('back.php' , '还原成功');
}
redirect('back.php' , '还原失败');
}
}
}
config.php这个文件是我自己的,主要是用来提供生成MYSQL连接的。
$bak_connection = db::factory('mysql');
不知道的可以参考我以前写的http://blog.csdn.net/tomyjohn/article/details/7675770
分享到:
相关推荐
php对mysql数据库的备份及还原
PHP实现的MySql数据库备份、恢复类
1.自动识别数据库版本,对于MySQL 4.1以上,备份数据时提示选择字符集. 2.导入数据时,提示原数据库编码,并自动识别. 3.增加导入目标数据库字符集选项. 4.支持GBK、BIG5、UTF8之间的编码转换(见特别说明4).
PHP备份和还原MySQL数据库代码,懒人必备
做PHP网站,后台常要用到MYSQL数据库备份,这个是比较完美的,本人亲自测试用过了。可以按时间对数据库进行不同的备份,可以下载恢复备份的数据库。
mysql数据库备份工具(单文件php版本),适合数据库管理没有现成工具的情况下快速备份您的数据库。
PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对于一些不便自己写shell脚本备份的VPS来说,就不用使用 FTP 或者使用 mysql 的管理工具进行 ...
PhpMysql数据库备份脚本
phpMySQLAutoBackup能自动备份mysql数据库,并将导出的数据库(数据与结构)压缩成gzip格式然后用email通知你。phpMySQLAutoBackup能够按设置每天/周定时备份,选择不同的表格来备份,当备份表格时,可以设置备份开始...
一个用php写的自动备份mysql数据库的脚本文件,自动删除15天前的备份
一个php类实现完整备份数据库,或者备份数据库中指定表的功能。
一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配置好连接地址用户名与数据库即可。 1. 数据库备份(导出) 2. 数据库恢复(导入) 分别是主机,用户名,密码,数据库名,数据库编码
这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配置好连接地址用户名与数据库即可。 功能:实现mysql数据库分卷备份,选择表进行备份,实现单个sql文件及分卷sql导入 。
采用php+mysql,只有一个文件,就可以实现数据库的备份和恢复,简单方便
php版mysql大数据库备份和恢复工具,这是亮仔修改的无乱码版 在原faisunSQL 4.0的基础上,针对数据备份过程中出现乱码的问题,做了优化. 增强的功能: 1.自动识别数据库版本,对于MySQL 4.1以上,备份数据时提示选择...
php版mysql数据库备份。
一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配置好连接地址用户名与数据库即可。 1. 数据库备份(导出) 2. 数据库恢复(导入) 分别是主机,用户名,密码,...
<?... class Backup { /** * @var stores the options ... * @var stores the table structure inserts for every table ... }这是一个很好用的php备份整个MySQL数据库类,需要的朋友可以下载使用
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第14章 数据备份与还原(共21页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第15章 MySQL日志(共23页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 ...
用php程序如何备份mysql数据库数据。