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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
php之Memcache学习笔记
Jun 17 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
Jan 03 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
python使用pandas实现数据分割实例代码
2018/01/25 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
详解python中eval函数的作用
2019/10/22 Python
python如何爬取网页中的文字
2020/07/28 Python
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
支部鉴定材料
2014/06/02 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
明星邀请函
2015/02/02 职场文书
初中体育教学随笔
2015/08/15 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
MySQL添加索引特点及优化问题
2022/07/23 MySQL