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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
php并发加锁示例
Oct 17 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 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 单引号与双引号的区别
2009/11/24 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
Angular数据绑定机制原理
2018/04/17 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
Python迭代器定义与简单用法分析
2018/04/30 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
详解Python中的路径问题
2020/09/02 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
简易离婚协议书范本
2014/10/24 职场文书
单位租房协议书样本
2014/10/30 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS