数据库还原
控制器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>