Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion über die Methode der PHP-Sicherung und Wiederherstellung von MySql

Eine kurze Diskussion über die Methode der PHP-Sicherung und Wiederherstellung von MySql

PHPz
PHPzOriginal
2016-05-16 09:00:112151Durchsuche

Dieser Artikel stellt Ihnen eine einfache Methode zum Sichern und Wiederherstellen von MySql in PHP vor, die Kenntnisse im Zusammenhang mit PHP-Verbindung, Abfrage und Dateibetrieb für die MySQL-Datenbank erfordert. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über die Methode der PHP-Sicherung und Wiederherstellung von MySql

1. Sicherung:

<?php
header ( "content-Type: text/html; charset=utf-8" );
//备份数据库
$host="localhost";
$user="root";//数据库账号
$password="123456";//数据库密码
$dbname="test";//数据库名称
//这里的账号、密码、名称都是从页面传过来的
if(!mysql_connect($host,$user,$password)) //连接mysql数据库
{
 echo &#39;数据库连接失败,请核对后再试&#39;;
 exit;
}
if(!mysql_select_db($dbname)) //是否存在该数据库
{
 echo &#39;不存在数据库:&#39;.$dbname.&#39;,请核对后再试&#39;;
 exit;
}
mysql_query("set names &#39;utf8&#39;");
$mysql= "set charset utf8;\r\n";
$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[&#39;Create Table&#39;].";\r\n";
  $q3=mysql_query("select * from `$table`");
  while($data=mysql_fetch_assoc($q3)){
    $keys=array_keys($data);
    $keys=array_map(&#39;addslashes&#39;,$keys);
    $keys=join(&#39;`,`&#39;,$keys);
    $keys="`".$keys."`";
    $vals=array_values($data);
    $vals=array_map(&#39;addslashes&#39;,$vals);
    $vals=join("&#39;,&#39;",$vals);
    $vals="&#39;".$vals."&#39;";
    $mysql.="insert into `$table`($keys) values($vals);\r\n";
  }
}
$filename="data/".$dbname.date(&#39;Ymjgi&#39;).".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename,&#39;w&#39;);
fputs($fp,$mysql);
fclose($fp);
echo "数据备份成功";
?>

2 🎜>Ich hoffe, dass das, was in diesem Artikel beschrieben wird, für alle hilfreich ist, die sich mit PHP-Programmierdesign befassen.

Empfohlenes Lernen: „
<!--
 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(";\r\n", $sql_value); //根据";\r\n"条件对数据库中分条执行
  $total=count($a)-1;
  mysql_query("set names &#39;utf8&#39;");
  for ($i=0;$i<$total;$i++)
  {
  mysql_query("set names &#39;utf8&#39;");
  //执行命令
  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-Video-Tutorial

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn