本文实例讲述了php简单备份与还原MySql的方法。分享给大家供大家参考,具体如下:
一、备份:<?phpheader ( "content-Type: text/html; charset=utf-8" );//备份数据库$host="localhost";$user="root";//数据库账号$password="123456";//数据库密码$dbname="test";//数据库名称//这里的账号、密码、名称都是从页面传过来的if(!mysql_connect($host,$user,$password)) //连接mysql数据库{ echo "数据库连接失败,请核对后再试"; exit;}if(!mysql_select_db($dbname)) //是否存在该数据库{ echo "不存在数据库:".$dbname.",请核对后再试"; exit;}mysql_query("set names "utf8"");$mysql= "set charset utf8;
";$q1=mysql_query("show tables");while($t=mysql_fetch_array($q1)){$table=$t[0];$q2=mysql_query("show create table `$table`");$sql=mysql_fetch_array($q2);$mysql.=$sql["Create Table"].";
";$q3=mysql_query("select * from `$table`");while($data=mysql_fetch_assoc($q3)){$keys=array_keys($data);$keys=array_map("addslashes",$keys);$keys=join("`,`",$keys);$keys="`".$keys."`";$vals=array_values($data);$vals=array_map("addslashes",$vals);$vals=join("","",$vals);$vals=""".$vals.""";$mysql.="insert into `$table`($keys) values($vals);
";}}$filename="data/".$dbname.date("Ymjgi").".sql"; //存放路径,默认存放到项目最外层$fp = fopen($filename,"w");fputs($fp,$mysql);fclose($fp);echo "数据备份成功";?>二、还原<!-- author:果冻 qq:52091199 blog:http://wyg517.blog.163.com--><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php$filename = "test20101216923.sql";$host="localhost"; //主机名$user="root"; //MYSQL用户名$password="123456"; //密码$dbname="test"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名mysql_connect($host,$user,$password);mysql_select_db($dbname);$mysql_file="data/".$filename; //指定要恢复的MySQL备份文件路径,请自已修改此路径restore($mysql_file); //执行MySQL恢复命令function restore($fname) { if (file_exists($fname)) {$sql_value="";$cg=0;$sb=0;$sqls=file($fname);foreach($sqls as $sql){$sql_value.=$sql;}$a=explode(";
", $sql_value); //根据";
"条件对数据库中分条执行$total=count($a)-1;mysql_query("set names "utf8"");for ($i=0;$i<$total;$i++){mysql_query("set names "utf8"");//执行命令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备份文件不存在,请检查文件路径是否正确!"; } }?>更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。