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 相关文章推荐
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
php生成二维码
Aug 10 PHP
实例讲解php数据访问
May 09 PHP
form自动提交实例讲解
Jul 10 PHP
php递归函数怎么用才有效
Feb 24 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 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垃圾代码优化操作代码
2010/08/05 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Python接口自动化测试的实现
2020/08/28 Python
详解KMP算法以及python如何实现
2020/09/18 Python
html5 标签
2009/07/16 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
几道PHP面试题
2013/04/14 面试题
学生处主任岗位职责
2013/12/01 职场文书
公司活动邀请函
2014/01/24 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android