<?php
//接受文件,數(shù)據(jù)庫名稱
$name=$_FILES['database_sql']['name'];
$db_name=substr($_FILES['database_sql']['name'],0,strpos($_FILES['database_sql']['name'],'.'));
//將文件存在某個地方
move_uploaded_file($_FILES['database_sql']['tmp_name'],ROOT_PATH.'public/database/daoru/'.$name);
$host="localhost";//主機名
$user="root";//MYSQL用戶名
$password="root";//密碼
$dbname=Request::instance()->post('database_name');//在此指定您要恢復的數(shù)據(jù)庫名镜盯,不存在則必須先創(chuàng)建,請自已修改數(shù)據(jù)庫名
$mysql_file=ROOT_PATH.'public/database/daoru/'.$db_name.'.sql';//指定要恢復的MySQL備份文件路徑,請自已修改此路徑
restore($mysql_file,$host,$dbname,$user,$password);//執(zhí)行MySQL恢復命令
functionrestore($fname,$host,$dbname,$user,$password)
{
$pdo=new\PDO("mysql:host=$host;dbname=$dbname",$user,$password);
if(file_exists($fname)) {
$sql_value="";
$cg=0;
$sb=0;
$sqls=file($fname);
foreach($sqlsas$sql)
{
$sql_value.=$sql;
}
$a=explode(";\r\n",$sql_value);//根據(jù)";\r\n"條件對數(shù)據(jù)庫中分條執(zhí)行
$total=count($a);
$pdo->query("set names 'utf8'");
for($i=0;$i<$total;$i++)
{
$pdo->query("set names 'utf8'");
//執(zhí)行命令
if($pdo->query($a[$i]))
{
$cg+=1;
}
else
{
$sb+=1;
$sb_command[$sb]=$a[$i];
}
}
echo"操作完畢岸裙,共處理$total條命令,成功$cg條形耗,失敗$sb條";
//顯示錯誤信息
if($sb>0)
{
echo"
失敗命令如下:
";
for($ii=1;$ii<=$sb;$ii++)
{
echo"
第 ".$ii." 條命令(內(nèi)容如下):
".$sb_command[$ii]."
";
}
}//-----------------------------------------------------------
}else{
echo"MySQL備份文件不存在哥桥,請檢查文件路徑是否正確辙浑!";
}
}