PHP备份数据库生成SQL文件并下载的函数代码


Posted in PHP onFebruary 05, 2012
<!?php 
/****** 备份数据库结构 ******/ 
/* 
函数名称:table2sql() 
函数功能:把表的结构转换成为SQL 
函数参数:$table: 要进行提取的表名 
返 回 值:返回提取后的结果,SQL集合 
函数作者:heiyeluren 
*/ 
function table2sql($table) 
{ 
global $db; 
$tabledump = "DROP TABLE IF EXISTS $table;n"; 
$createtable = $db--->query("SHOW CREATE TABLE $table"); 
$create = $db->fetch_row($createtable); 
$tabledump .= $create[1].";nn"; 
return $tabledump; 
} 
/****** 备份数据库结构和所有数据 ******/ 
/* 
函数名称:data2sql() 
函数功能:把表的结构和数据转换成为SQL 
函数参数:$table: 要进行提取的表名 
返 回 值:返回提取后的结果,SQL集合 
函数作者:heiyeluren 
*/ 
function data2sql($table) 
{ 
global $db; 
$tabledump = "DROP TABLE IF EXISTS $table;n"; 
$createtable = $db->query("SHOW CREATE TABLE $table"); 
$create = $db->fetch_row($createtable); 
$tabledump .= $create[1].";nn"; 
$rows = $db->query("SELECT * FROM $table"); 
$numfields = $db->num_fields($rows); 
$numrows = $db->num_rows($rows); 
while ($row = $db->fetch_row($rows)) 
{ 
$comma = ""; 
$tabledump .= "INSERT INTO $table VALUES("; 
for($i = 0; $i < $numfields; $i++) 
{ 
$tabledump .= $comma."'".mysql_escape_string($row[$i])."'"; 
$comma = ","; 
} 
$tabledump .= ");n"; 
} 
$tabledump .= "n"; 
return $tabledump; 
} 
?> 
<!--?php 
$host="localhost"; //主机名 
$user="root"; //MYSQL用户名 
$password="root"; //密码 
$dbname="dedecmsv4"; //备份的数据库 
mysql_connect($host,$user,$password); 
mysql_select_db($dbname); 
$q1=mysql_query("show tables"); 
while($t=mysql_fetch_array($q1)){ 
$table=$t[0]; 
$q2=mysql_query("show create table `$table`"); 
$sql=mysql_fetch_array($q2); 
$mysql.=$sql['Create Table'].";rnrn";#DDL 
$q3=mysql_query("select * from `$table`"); 
while($data=mysql_fetch_assoc($q3)) 
{ 
$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);rn"; 
} 
$mysql.="rn"; 
} 
$filename=date('Ymd')."_".$dbname.".sql"; //文件名为当天的日期 
$fp = fopen($filename,'w'); 
fputs($fp,$mysql); 
fclose($fp); 
echo "数据备份成功,生成备份文件".$filename; 
?>
PHP 相关文章推荐
用PHP生成自己的LOG文件
Oct 09 PHP
php5编程中的异常处理详细方法介绍
Jul 29 PHP
php5新改动之短标记启用方法
Sep 11 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
php数组去重复数据示例
Feb 25 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 #PHP
php 搜索框提示(自动完成)实例代码
Feb 05 #PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 #PHP
PHP测试程序运行时间的类
Feb 05 #PHP
PHP设计模式 注册表模式
Feb 05 #PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 #PHP
需要注意的几个PHP漏洞小结
Feb 05 #PHP
You might like
php抓取https的内容的代码
2010/04/06 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
详谈javascript中DOM的基本属性
2015/02/26 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
基于JavaScript实现弹幕特效
2020/08/27 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
python数据结构之二叉树的遍历实例
2014/04/29 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
python如何读写csv数据
2018/03/21 Python
Python 打印中文字符的三种方法
2018/08/14 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
PHP面试题及答案一
2012/06/18 面试题
金智子午JAVA面试题
2015/09/04 面试题
厂长助理岗位职责
2013/12/27 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
班级口号大全
2014/06/09 职场文书
端午节活动总结报告
2015/02/11 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS