首页 > 开发 > PHP > 正文

php备份数据库类分享

2024-05-04 23:34:12
字体:
来源:转载
供稿:网友

本文实例讲述了php实现MySQL数据库备份类。分享给大家供大家参考。具体分析如下:这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的配置好连接地址用户名与数据库即可

php备份数据库类分享

 

 
  1. <?php 
  2. /** 
  3.  
  4. * @name php备份数据库  
  5. * @param string $DbHost 连接主机 
  6. * @param string $DbUser 用户名 
  7. * @param string $DbPwd 连接密码 
  8. * @param string $DbName 要备份的数据库 
  9. * @param string $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分 
  10. * @return Null 
  11. * @example backupMySqlData('localhost', 'root', '123456', 'YourDbName'); 
  12. * 
  13. */ 
  14. function backupMySqlData($DbHost$DbUser$DbPwd$DbName$saveFileName = ''
  15. header("Content-type:text/html;charset=utf-8"); 
  16. error_reporting(0); 
  17. set_time_limit(0); 
  18.  
  19. echo '数据备份中,请稍候......<br />'
  20.  
  21. $link = mysql_connect($DbHost$DbUser$DbPwdor die('数据库连接失败: ' . mysql_error()); 
  22. mysql_select_db($DbNameor die('数据库连接失败: ' . mysql_error()); 
  23. mysql_query('set names utf8'); 
  24.  
  25. // 声明变量 
  26. $isDropInfo = ''
  27. $insertSQL = ''
  28. $row = array(); 
  29. $tables = array(); 
  30. $tableStructure = array(); 
  31. $fileName = ($saveFileName ? $saveFileName : 'MySQL_data_bakeup_') . date('YmdHis') . '.sql'
  32.  
  33. // 枚举该数据库所有的表 
  34. $res = mysql_query("SHOW TABLES FROM $DbName"); 
  35. while ($row = mysql_fetch_row($res)) { 
  36.  
  37. $tables[] = $row[0]; 
  38.  
  39. mysql_free_result($res); 
  40.  
  41. // 枚举所有表的创建语句 
  42. foreach ($tables as $val) { 
  43.  
  44. $res = mysql_query("show create table $val"$link); 
  45. $row = mysql_fetch_row($res); 
  46.  
  47. $isDropInfo = "DROP TABLE IF EXISTS `" . $val . "`;/r/n"
  48. $tableStructure = $isDropInfo . $row[1] . ";/r/n"
  49.  
  50. file_put_contents($fileName$tableStructure, FILE_APPEND); 
  51. mysql_free_result($res); 
  52.  
  53. // 枚举所有表的INSERT语句 
  54. foreach ($tables as $val) { 
  55.  
  56. $res = mysql_query("select * from $val"); 
  57.  
  58. // 没有数据的表不执行insert 
  59. while ($row = mysql_fetch_row($res)) { 
  60.  
  61. $sqlStr = "INSERT INTO `".$val."` VALUES ("
  62.  
  63. foreach($row as $v){ 
  64.  
  65. $sqlStr .= "'$v',"
  66.  
  67. //去掉最后一个逗号 
  68. $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1); 
  69. $sqlStr .= ");/r/n"
  70.  
  71. file_put_contents($fileName$sqlStr, FILE_APPEND); 
  72. mysql_free_result($res); 
  73.  
  74. echo '数据备份成功!'
  75.    // 调用此方法  
  76. backupMySqlData('localhost''root''123456''YouDbName');  
  77. ?> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表