php还原数据库,sql文件

前端代码

<form method="post" action="recovery_mysqldb.php" enctype="multipart/form-data">
<table width="100%" border="0">
  <tbody>
    <tr>
      <td width="25%" height="50" align="right" class="backup-text">数据库还原:</td>
      <td colspan="3"></td>
      </tr>
    <tr>
      <td width="25%" height="50" align="right">请选择路径:</td>
      <td colspan="3"><input type="file" name="myfile" id="myfile" style="width: 100%;" placeholder=""></td>
      </tr>
    
    <tr>
      <td height="50">&nbsp;</td>
      <td colspan="3"><span class="text-prompt">*(谨慎使用)选择 name.sql 文件路径点击还原按钮即可还原数据表及数据,还原后的数据是选择sql文件里头的数据。</span></td>
    </tr>
    <tr>
      <td height="50" align="right" valign="middle">&nbsp;</td>
      <td height="50" align="center" valign="middle">
        </td>
      <td align="center" valign="middle">
        <button type="submit" name="submit" class="btn btn-success" onclick="return stop()">还原数据库</button>
        <button type="reset" class="btn btn-default">&nbsp;&nbsp;重新设置&nbsp;&nbsp;</button>
        </td>
      <td width="25%" align="left" valign="middle">&nbsp;</td>
    </tr>
  </tbody>
</table>
</form>

发送请求后台代码

<!--
    作者:87046766@qq.com
    时间:2018-01-16
    描述:版权所有违者必究
-->
<meta charset="utf-8">
<?php
    ob_start();
    session_start();
    if($_SESSION['admin']!=''){
        //$upload_dir="./upload files";
        $upload_file=iconv("UTF-8","Big5",$_FILES["myfile"]["name"]);
        if(move_uploaded_file($_FILES["myfile"]["tmp_name"],$upload_file)){
            //连接数据库
            $conn=mysql_connect("localhost","root","root");
            mysql_select_db("evaluation_system",$conn);
            mysql_query("set names utf8");
            
            
            //还原数据库要执行的语句
            $dbname="evaluation_system";
            $sql="";
            
            //查询所有数据表名
            $sql_tablist="show tables"; 
            $rs_tablist=mysql_query($sql_tablist); 
            while($tablist=mysql_fetch_assoc($rs_tablist)){
                $sql.="drop table `".$tablist['Tables_in_'.$dbname]."`;";
            }
            
            //读取上传到的文件
            
            //打开文件
            $handle=fopen($_FILES["myfile"]["name"],"r");
            //读取文件
            $sql.=fread($handle,filesize($_FILES["myfile"]["name"]));
            //关闭文件
            fclose($handle);
            
            //不能批量执行sql语句分割以;sql
            $array=explode(";",$sql);
            
            //循环执行分隔开的sql语句
            foreach($array as $value){
                mysql_query($value);
            }
            //echo $sql;
            //删除服务器端文件
            unlink($_FILES["myfile"]["name"]);
            
            echo "<script type='text/javascript'>alert('数据库还原成功!');window.location.href='admin_mysqldb.php';</script>";
            
        }else{
            echo "<script type='text/javascript'>alert('出错啦!请重新选择还原文件!');window.location.href='admin_mysqldb.php';</script>";
        }
    }
    else echo "<script language='javascript'>top.location.href='index.php'</script>";
?>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,511评论 25 709
  • 喵森在白箱第一集就把奥拓开出了头文字D的感觉。 特别喜欢白箱。自从夏娜以来很少有这样的动漫了。所以我才写下了这武藏...
    斩喜阅读 3,437评论 0 2
  • 行车上路 做一个镇定淡然的女司机。 不依靠、不躲避, 穿过流年,不惧锋芒。 稳稳地直面世事无常。 那年,我在上海徐...
    猫总画事阅读 4,704评论 3 4
  • 汉字处理的场景 汉字、汉语词汇的处理是自然语言处理技术的基础,主要应用场景包括:输入法、输入提示、语音识别、文字朗...
    高天蒲阅读 6,426评论 1 1
  • 【2017年大德盛世 1000万目标势必达成】 【 大德今年势必会孵化出二个年薪30 万以上,三个年薪 20万以上...
    大德帅帅阅读 1,072评论 0 0

友情链接更多精彩内容