当前位置:首页 > PHP教程 > php高级应用 > 列表

php简单备份与还原MySql的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-02 14:57:32 浏览: 评论:0 

这篇文章主要介绍了php简单备份与还原MySql的方法,涉及php针对mysql数据库的连接、查询及文件操作相关技巧,需要的朋友可以参考下。

本文实例讲述了php简单备份与还原MySql的方法,分享给大家供大家参考,具体如下:

一、备份:

  1. <?php 
  2. header ( "content-Type: text/html; charset=utf-8" ); 
  3. //备份数据库 
  4. $host="localhost"
  5. $user="root";//数据库账号 
  6. $password="123456";//数据库密码 
  7. $dbname="test";//数据库名称 
  8. //这里的账号、密码、名称都是从页面传过来的 
  9. if(!mysql_connect($host,$user,$password)) //连接mysql数据库 
  10.  echo '数据库连接失败,请核对后再试'
  11.  exit
  12. if(!mysql_select_db($dbname)) //是否存在该数据库 
  13.  echo '不存在数据库:'.$dbname.',请核对后再试'
  14.  exit
  15. mysql_query("set names 'utf8'"); 
  16. $mysql"set charset utf8;\r\n"
  17. $q1=mysql_query("show tables"); 
  18. while($t=mysql_fetch_array($q1)){ 
  19.   $table=$t[0]; 
  20.   $q2=mysql_query("show create table `$table`"); 
  21.   $sql=mysql_fetch_array($q2); 
  22.   $mysql.=$sql['Create Table'].";\r\n"
  23.   $q3=mysql_query("select * from `$table`"); 
  24.   while($data=mysql_fetch_assoc($q3)){ 
  25.     $keys=array_keys($data); 
  26.     $keys=array_map('addslashes',$keys); 
  27.     $keys=join('`,`',$keys); 
  28.     $keys="`".$keys."`"
  29.     $vals=array_values($data); 
  30.     $vals=array_map('addslashes',$vals); 
  31.     $vals=join("','",$vals); 
  32.     $vals="'".$vals."'"
  33.     $mysql.="insert into `$table`($keys) values($vals);\r\n"
  34.   } 
  35. $filename="data/".$dbname.date('Ymjgi').".sql"//存放路径,默认存放到项目最外层 
  36. $fp = fopen($filename,'w'); 
  37. fputs($fp,$mysql); 
  38. fclose($fp); 
  39. echo "数据备份成功"
  40. ?> 

二、还原

  1. <!-- 
  2.  author:果冻 
  3.  qq:52091199 
  4.  blog:http://wyg517.blog.163.com 
  5. --> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  7. <?php 
  8. $filename = "test20101216923.sql"
  9. $host="localhost"//主机名 
  10. $user="root"//MYSQL用户名 
  11. $password="123456"//密码 
  12. $dbname="test"//在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名 
  13. mysql_connect($host,$user,$password); 
  14. mysql_select_db($dbname); 
  15. $mysql_file="data/".$filename//指定要恢复的MySQL备份文件路径,请自已修改此路径 
  16. restore($mysql_file); //执行MySQL恢复命令 
  17. function restore($fname
  18.  { 
  19.  if (file_exists($fname)) { 
  20.   $sql_value=""
  21.   $cg=0; 
  22.   $sb=0; 
  23.   $sqls=file($fname); 
  24.   foreach($sqls as $sql
  25.   { 
  26.   $sql_value.=$sql
  27.   } 
  28.   $a=explode(";\r\n"$sql_value); //根据";\r\n"条件对数据库中分条执行 
  29.   $total=count($a)-1; 
  30.   mysql_query("set names 'utf8'"); 
  31.   for ($i=0;$i<$total;$i++) 
  32.   { 
  33.   mysql_query("set names 'utf8'"); 
  34.   //执行命令 
  35.   if(mysql_query($a[$i])) 
  36.   { 
  37.    $cg+=1; 
  38.   } 
  39.   else 
  40.   { 
  41.    $sb+=1; 
  42.    $sb_command[$sb]=$a[$i]; 
  43.   } 
  44.   } 
  45.   echo "操作完毕,共处理 $total 条命令,成功 $cg 条,失败 $sb 条"
  46.   //显示错误信息 
  47.   if ($sb>0) 
  48.   { 
  49.   echo "<hr><br><br>失败命令如下:<br>"
  50.   for ($ii=1;$ii<=$sb;$ii++) 
  51.   { 
  52.    echo "<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>"
  53.   } 
  54.   }  //----------------------------------------------------------- 
  55.  }else
  56.   echo "MySQL备份文件不存在,请检查文件路径是否正确!"
  57.  } 
  58.  } 
  59. ?>

Tags: php备份MySql php还原MySql

分享到:

相关文章