数据库还原

这篇博客详细介绍了如何在PHP环境中执行数据库还原操作。通过控制器MysqlData.Php中的recover方法,接收POST请求的数据库名和备份文件名,首先检查数据库是否存在,若不存在则创建,然后使用系统命令行工具执行还原命令。博客还展示了Recover.html表单,提供了选择备份文件和输入数据库名的界面,用户提交表单后将执行数据库还原操作。
摘要由CSDN通过智能技术生成

数据库还原

控制器MysqlData.Php的代码

public function recover(Request $request){
    if ($request->isPost()){
        $dbname=$request->post('dbname');
        $backup_name=$request->post('backup_name');
        $sql="show databases";
        $db=Db::connect('db_config2');//连接的数据库需要在config中设置这边我用了root用户里面的数据表

 


        $database=array_column($db->query($sql),'Database');

        if (!in_array($dbname,$database)){
            $sql="create database {$dbname}";
            $db->execute($sql);
        }

        $command="D:\phpstudy_pro\Extensions\MySQL5.5.29\bin\mysql.exe -h localhost -uroot -prootroot $dbname < $backup_name";

        exec($command);
        $this->success('还原成功','index/index');
    }else{
        $backupData=Backup::select();
        return $this->fetch('recover',compact('backupData'));

    }

}

 

Recover.html表单中的数据

<form action="{:url('recover')}" method="post">
  <p>
    数据路名称:<input type="text" name="dbname">
  </p>
  <p>
    还原数据库文件:
    <select name="backup_name" id="">
      {foreach $backupData as $v}
      <option value="{$v.backup_name}">{$v.backup_name}</option>
      {/foreach}
    </select>
  </p>
  <p>
    <input type="submit" value="还原">
  </p>
</form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值