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代码
Dec 06 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
Yii2数据库操作常用方法小结
May 04 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
Python socket编程实例详解
2015/05/27 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
python tkinter canvas使用实例
2019/11/04 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
django框架两个使用模板实例
2019/12/11 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
美国NBA官方商店:NBA Store
2019/04/12 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
超市5.1促销活动
2014/01/15 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
关于建议书的格式范文
2014/05/20 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
营业员岗位职责范本
2015/04/14 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
Golang全局变量加锁的问题解决
2021/05/08 Golang
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
关于JavaScript回调函数的深入理解
2021/06/27 Javascript