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+xslt在windows平台上
Oct 09 PHP
php中全局变量global的使用演示代码
May 18 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php验证码实现代码(3种)
Sep 07 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
PHP简单实现合并2个数字键数组值的方法
May 30 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
php把字符串指定字符分割成数组的方法
Mar 12 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
农民C键的运用技巧
2020/03/04 星际争霸
建立文件交换功能的脚本(三)
2006/10/09 PHP
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
json的使用小结
2016/06/08 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
Linux下Python获取IP地址的代码
2014/11/30 Python
Python调用C语言开发的共享库方法实例
2015/03/18 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
Java提供了哪些企业应用编程接口
2015/02/13 面试题
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
同事吵架检讨书
2014/02/05 职场文书
车间机修工岗位职责
2014/02/28 职场文书
商超业务员岗位职责
2014/03/12 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
领导干部学习心得体会
2016/01/23 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
《鲸》教学反思
2016/02/23 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书