肥宅自学平台_人人成为技术开发者

肥宅人只等待您,联系我们吧,曾经的巅峰是否能回来?我们正在用心服务!

php如何备份并且还原数据库代码

 更新时间:2024-04-20 15:34:12   作者:肥宅-季波   我要评论(0)  

        php实现mysql数据库的备份与还原的方法,在日常的php编程中经常用得到

备份数据库
  1. <?php
  2. $host="localhost";  
  3. $user="####";//数据库账号
  4. $password="###";//数据库密码
  5. $dbname="###";//数据库名称
  6. //这里的账号、密码、名称都是从页面传过来的
  7. if(!mysql_connect($host,$user,$password))  //连接mysql数据库
  8. {
  9. echo '数据库连接失败,请核对后再试';
  10. exit;
  11. }
  12. if(!mysql_select_db($dbname))  //是否存在该数据库
  13. {
  14. echo '不存在数据库:'.$dbname.',请核对后再试';
  15. exit;
  16. }
  17. //$mysql= "set charset utf8;\r\n";  
  18. $q1=mysql_query("show tables");
  19. while($t=mysql_fetch_array($q1)){
  20.     $table=$t[0];
  21.     $q2=mysql_query("show create table `$table`");
  22.     $sql=mysql_fetch_array($q2);
  23.     $mysql.=$sql['Create Table'].";\r\n";
  24.     $q3=mysql_query("select * from `$table`");
  25.     while($data=mysql_fetch_assoc($q3)){
  26.         $keys=array_keys($data);
  27.         $keys=array_map('addslashes',$keys);
  28.         $keys=join('`,`',$keys);
  29.         $keys="`".$keys."`";
  30.         $vals=array_values($data);
  31.         $vals=array_map('addslashes',$vals);
  32.         $vals=join("','",$vals);
  33.         $vals="'".$vals."'";
  34.         $mysql.="insert into `$table`($keys) values($vals);\r\n";
  35.     }
  36. }
  37. $filename="../bak/".$_POST[b_name];  //存放路径,默认存放到项目最外层
  38. $fp = fopen($filename,'w');
  39. fputs($fp,$mysql);
  40. fclose($fp);
  41. ?>
还原数据库
  1. <?php
  2. $filename = $_POST[r_name];
  3. $host="localhost"; //主机名
  4. $user="root"; //MYSQL用户名
  5. $password="1234"; //密码
  6. $dbname="db_office"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
  7. $conns=mysql_connect($host,$user,$password);
  8. mysql_select_db($dbname);
  9. $result = mysql_query("show table status from $dbname",$conns);
  10. while($data=mysql_fetch_array($result)) {
  11. mysql_query("drop table $data[Name]");
  12. }
  13. $mysql_file="../bak/".$filename; //指定要恢复的MySQL备份文件路径,请自已修改此路径
  14. restore($mysql_file); //执行MySQL恢复命令
  15. function restore($fname)
  16. {
  17.   if (file_exists($fname)) {
  18.    $sql_value="";
  19.    $cg=0;
  20.    $sb=0;
  21.    $sqls=file($fname);
  22.    foreach($sqls as $sql)
  23.    {
  24.     $sql_value.=$sql;
  25.    }
  26.    $a=explode(";\r\n", $sql_value);  //根据";\r\n"条件对数据库中分条执行
  27.    $total=count($a)-1;
  28.    //mysql_query("set names 'utf8'");
  29.    for ($i=0;$i<$total;$i++)
  30.    {
  31.     //mysql_query("set names 'utf8'");
  32.     //执行命令
  33.     if(mysql_query($a[$i]))
  34.     {
  35.      $cg+=1;
  36.     }
  37.     else
  38.     {
  39.      $sb+=1;
  40.      $sb_command[$sb]=$a[$i];
  41.     }
  42.    }
  43.    echo "<script>alert('操作完毕,共处理 $total 条命令,成功 $cg 条,失败 $sb 条');location='data_stock.php'</script>";
  44.    //显示错误信息
  45.    if ($sb>0)
  46.    {
  47.     echo "<hr><br><br>失败命令如下:<br>";
  48.     for ($ii=1;$ii<=$sb;$ii++)
  49.     {
  50.      echo "<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
  51.     }
  52.    }   //--
  53.   }else{
  54.    echo "MySQL备份文件不存在,请检查文件路径是否正确!";
  55.   }
  56. }
  57. ?>  
"小礼物走一走,来肥宅自学平台支持我"
评论区

评论

共条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
客服中心在线客服
全心全意为平台用户服务
Copyright © 2017-2023 自学平台网站地图:去查看>
  • 肥宅人自己的自学平台
  • 人人都能成为平台讲师
  • 贡献你的力量壮大肥宅自学平台
  • 将自己的能力变现
  • 实现人生的第二职业
网址收藏平台安卓APP
微信公众号微信公众号

本站部分图片或者资源来自程序自动采集或卖家(商家)发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

肥宅自学教程网是一个主打IT视频教程、自媒体运行、摄影剪辑等内容的资源学习交流平台。