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 随机排序广告的实现代码
May 09 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
PHP数据库操作Helper类完整实例
May 11 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 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的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
一行代码告别document.getElementById
2012/06/01 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
大学新生军训个人的自我评价
2013/10/03 职场文书
火车来了教学反思
2014/02/11 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
《穷人》教学反思
2016/02/19 职场文书
DIY胆机必读:各国电子管评价
2022/04/06 无线电
Python开发五子棋小游戏
2022/05/02 Python