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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
隐性调用php程序的方法
Mar 09 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
php错误级别的设置方法
Jun 17 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
php如何实现数据库的备份和恢复
Nov 30 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常用正则表达式的整理汇总
2013/06/08 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP7新功能总结
2019/04/14 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
音乐系毕业生自荐信
2013/10/27 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
python编程项目中线上问题排查与解决
2021/11/01 Python