PHP 恢复MySQL数据库,执行(*.sql)备份出来的MySQL命令

发布时间:2008年05月06日      浏览次数:1227 次
<?
////////////////////////////////////////////////////////////////////////////////
// 功能:数据库恢复,执行备份出来的SQL命令以恢复数据库表 //
// 文件名:mysql_comeback.php //
// 要注意的是:在恢复时,要恢复的数据库必须存在,如果不存在则必须先在MySQL里创建。 //
///////////////////////////////////////////////////////////////////////////////
header("content-type:text/html; charset=UTF-8");
set_time_limit(0);
ini_set('memory_limit', 60000000);//设置最大允许内存值约为60M,如果您的SQL文件够大,请更改此值为适合您SQL文件大小的值,此值为以字节为度量单位
$host="localhost"; //主机名
$user="root"; //MYSQL用户名
$password=""; //密码
$dbname="mysql"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql_file="MySQL_Backup/*.sql"; //指定要恢复的MySQL备份文件路径,请自已修改此路径
mysql_comeback($mysql_file); //执行MySQL恢复命令
function mysql_comeback($fname)
{
      if (file_exists($fname)) {
            $sql_value="";
            $cg=0;
            $sb=0;
            $sqls=file($fname);
            foreach($sqls as $sql)
            {
                  $sql_value.=$sql;
            }
            $a=explode(";\r\n", $sql_value);
            $total=count($a)-1;
            for ($i=0;$i<$total;$i++)
            {
                  //执行命令
                  if(mysql_query($a[$i]))
                  {
                        $cg+=1;
                  }
                  else
                  {
                        $sb+=1;
                        $sb_command[$sb]=$a[$i];
                  }
            }
            echo "操作完毕,共处理 $total 条命令,成功 $cg 条,失败 $sb 条";
            //-----------------------------------------------------------
            //输出错误命令,如果不需要可注释以下代码
            if ($sb>0)
            {
                  echo "<hr><br><br>失败命令如下:<br>";
                  for ($ii=1;$ii<=$sb;$ii++)
                  {
                        echo "<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
                  }
            }
            //-----------------------------------------------------------
      }else{
            echo "MySQL备份文件不存在,请检查文件路径是否正确!";
      }
}
?>
文章来源:桂林唯创网络原创
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!