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中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
php获取一个变量的名字的方法
Sep 05 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
PHP实现百度人脸识别
May 06 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
Apr 06 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压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python读取图片任意范围区域
2019/01/23 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
python可视化text()函数使用详解
2020/02/11 Python
Python加速程序运行的方法
2020/07/29 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
《赠汪伦》教学反思
2014/04/12 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL