PHP备份数据库生成SQL文件并下载的函数代码

2015-01-24信息快讯网

这是一个将指定数据库里的所有表备份为一个SQL文件,可下载。这个源码来自dedecms程序,功能挺多,也很实用,但是代码的质量还有待提高

 
<!?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备份MySQL和网站发送到邮箱实例代码
php 备份数据库代码(生成word,excel,json,xml,sql)
PHP在不同页面间传递Json数据示例代码
解析PHP自带的进位制之间的转换函数
PHP rawurlencode与urlencode函数的深入分析
如何利用php array_multisort函数 对数据库结果进行复杂排序
PHP stripos()函数及注意事项的分析
深入php常用函数的使用汇总
深入理解php的MySQL连接类
探讨如何把session存入数据库
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
深入理解用mysql_fetch_row()以数组的形式返回查询结果
fetchAll()与mysql_fetch_array()的区别详解
用mysql_fetch_array()获取当前行数据的方法详解
PHP高级对象构建 工厂模式的使用
PHP将整个网站生成HTML纯静态网页的方法总结
PHP持久连接mysql_pconnect()函数使用介绍
PHP中如何判断AJAX提交的数据
PHP中使用数组实现堆栈数据结构的代码
mysql数据库差异比较的PHP代码
PHP反转字符串函数strrev()函数的用法
PHP __autoload函数(自动载入类文件)的使用方法
PHP函数spl_autoload_register()用法和__autoload()介绍
PHP对象转换为数组函数(递归方法)
PHP开发者常犯的10个MySQL错误更正剖析
PHP中全面阻止SQL注入式攻击分析小结
php 无法加载mysql的module的时候的配置的解决方案引发的思考
如何用phpmyadmin设置mysql数据库用户的权限
使用PHPMyAdmin修复论坛数据库的图文方法
PHP网站备份程序代码分享
PHP备份/还原MySQL数据库的代码
©2014-2024 dbsqp.com