加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php备份数据库脚本的几个例子

发布时间:2022-02-17 05:23:17 所属栏目:PHP教程 来源:互联网
导读:利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考. 例子,代码如下: ?php // 备份数据库 $host = localhost; $user = root; //数据库账号 $pas
  利用php备份mysql数据库就是把数据生成.sql文件,这样就算是数据备份成功了,恢复时也可以直接读取再一条条执行即可,下面整理了一些备份例子大家有兴趣的可进来参考.
 
  例子,代码如下:
 
  <?php  
  // 备份数据库
  $host = "localhost";
  $user = "root"; //数据库账号
  $password = ""; //数据库密码
  $dbname = "mysql"; //数据库名称
  // 这里的账号、密码、名称都是从页面传过来的
  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;\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['Create Table'] . ";\r\n";
      $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);\r\n";
      }  
  }  
  
  $filename = $dbname . date('Ymjgi') . ".sql"; //存放路径,默认存放到项目最外层
  $fp = fopen($filename, 'w');
  fputs($fp, $mysql);
  fclose($fp);
  echo "数据备份成功";
  
  ?>  
  //例子,代码如下:
  #!/usr/bin/php www.Cuoxin.com
  <?php
  header('Content-Type:text/html;charset=utf-8');
  
  define('BACK_PATH', dirname(__FILE__));
  
  /**
  为空数组就备份所有数据库
  */
  $back_databases = array('learning','wp');
  
  $mysql_host = 'localhost';
  
  $mysql_user = 'root';
  
  $mysql_passwd = 'root';
  
  if($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)){
  
   $databases = array();
  
   mysql_select_db('mysql', $conn);
  
   $query  =mysql_query('show databases',$conn);
  
   while($row = mysql_fetch_array($query))
   {
    if(emptyempty($row)) continue;
     
    $database = $row[0];
     
    if(!emptyempty($back_databases) && !in_array($database, $back_databases)) continue;
       
    $sql_dir = BACK_PATH . "/{$database}.sql";
      
    $execs = "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} > " . $sql_dir;
     
    system($execs);
     
    if(file_exists($sql_dir . '.gz')) {
       unlink($sql_dir . '.gz');
    }
       
    system('gzip ' . $sql_dir);
   }
  }
  //例子,代码如下:
  <?php  
  $host="##mysql服务器地址##";  
  $user="##登录帐号##";  
  $password="##登录密码##";  
  $dbname="##数据库名##";  
  $filename="##备份文件路径##";  
  mysql_connect($host,$user,$password);  
  mysql_select_db($dbname);  
  $mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";  
  $mysql.="USE `".$dbname."`;\r\n\r\n";  
  $q0=mysql_query("set names utf8");  
  $q1=mysql_query("show tables");  
  while($t=mysql_fetch_array($q1)){  
    $table=$t[0];  
    $mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";  
    $q2=mysql_query("show create table `$table`");  
    $sql=mysql_fetch_array($q2);  
    $mysql.=$sql['Create Table'].";\r\n\r\n";  
    $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);\r\n";  
    }  
    $mysql.="\r\n";  
  }  
  $fp = fopen($filename,'wb');  
  fputs($fp,$mysql);  
  fclose($fp);  
  include_once('lib/pclzip.lib.php');  
  $archive = new PclZip($filename.'.zip');  
  $v_list = $archive->create($filename);  
  if ($v_list == 0) {  
     die("Error : ".$archive->errorInfo(true));  
  }  
  if(file_exists($filename)){  
     unlink($filename);  
  }  
  echo "Mysql's backup successfully to ".$filename.".zip";  
  ?>  
  Zip打包备份代码,几乎就是全抄demo,太方便了,代码如下:
 
  <?PHP  
  include_once('lib/pclzip.lib.php');  
  $src="##源路径##";  
  $dest="##目标zip路径##";  
  $archive = new PclZip($dest);  
  $v_list = $archive->create($src);  
  if ($v_list == 0) {  
     die("Error : ".$archive->errorInfo(true));  
  }else{  
       print("Success");  
  }  
  ?>
  pclzip.lib.php这个压缩包文件大家百度去下载这里未提供.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读