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的错误信息
Oct 09 PHP
在PWS上安装PHP4.0正式版
Oct 09 PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
php5.x禁用eval的操作方法
Oct 19 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
Python实现截屏的函数
2015/07/26 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
护士自荐信怎么写
2013/10/18 职场文书
秘书行业自我鉴定范文
2013/12/30 职场文书
期终自我鉴定
2014/02/17 职场文书
小学语文课后反思精选
2014/04/25 职场文书
商场父亲节活动方案
2014/08/27 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
2015年公务员工作总结
2015/04/24 职场文书
家长通知书家长意见
2015/06/03 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
部门主管竞聘书
2015/09/15 职场文书
小学三年级作文之写景
2019/11/05 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
python实现A*寻路算法
2021/06/13 Python
java实现对Hadoop的操作
2021/07/01 Java/Android