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 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
详解PHP实现执行定时任务
Dec 21 PHP
PHP中的session安全吗?
Jan 22 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
简单谈谈PHP中的Reload操作
Dec 12 PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 PHP
Laravel 框架路由原理与路由访问实例分析
Apr 14 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实现paypal整合方法
2010/11/28 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
大学生表扬信范文
2014/01/09 职场文书
网络研修随笔感言
2014/02/17 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
生物技术专业求职信
2014/06/10 职场文书
市场总监岗位职责
2015/02/11 职场文书
外出培训学习心得体会
2016/01/18 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
基于Python编写一个监控CPU的应用系统
2022/06/25 Python