加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP Mysql数据库备份类程序汇总

发布时间:2022-02-16 17:02:52 所属栏目:PHP教程 来源:互联网
导读:数据库备份类我们只要在网上一搜索在N多的类代码,下面我来总结几款不错数据库备份希望对大家有所帮助. 数据库备份类,使用方法,代码如下: require_once(backdata.class.php); $link = @mysql_connect(localhost,数据库名,密码) or die (Could not connect t
  数据库备份类我们只要在网上一搜索在N多的类代码,下面我来总结几款不错数据库备份希望对大家有所帮助.
 
  数据库备份类,使用方法,代码如下:
 
  require_once("backdata.class.php");
  $link = @mysql_connect("localhost","数据库名","密码") or die ('Could not connect to server.');
  mysql_query("use cms",$link);
  mysql_query("set names utf8",$link);
  //开源代码Cuoxin.com
  $dbbck = new backupData($link);//实例化它,只要一个链接标识就行了
  
  //备份数据时,如想备份一个数据库中的所有表,你可这样写:
  $dbbck->backupTables("cms","./",array('*'));
   
  //注解:$dbbck->backupTables("参1","参2",array());中,
  参1为:数据库名
 
  参2为:要存放备份数据的位置(即目录地址)
 
  第三个为:你要保存那些表
 
  backdata.class.php,代码如下:
 
  <?php
  /*
  *
  *一个简单的Mysql备份数据类
  *
  */
  class backupData{
      private    $mysql_link;//链接标识
      private    $dbName;    //数据库名
      private    $dataDir;     //数据所要存放的目录
      private    $tableNames;//表名
  
                 
              //************************以下是形成SQL的前半部分**************
              //如果存在表,就先删除
              $sqls .= "DROP TABLE IF EXISTS $tablename;n";
              //读取表结构
              $rs = mysql_query("SHOW CREATE TABLE $tablename",$this->mysql_link);   
              $row=mysql_fetch_row($rs);
              //获得表结构组成SQL
              $sqls.=$row['1'].";nn";
              unset($rs);
              unset($row);
               
              //************************以下是形成SQL的后半部分**************
              //查寻出表中的所有数据
              $rs=mysql_query("select * from $tablename",$this->mysql_link);
              //表的字段个数
              $field=mysql_num_fields($rs);
              //形成此种SQL语句:"INSERT INTO `groups` VALUES('1499e0ca25988d','主任','','0');"
              while($rows=mysql_fetch_row($rs)){
                  $comma='';//逗号
                  $sqls.="INSERT INTO `$tablename` VALUES(";
                  for($i=0;$i<$field;$i++){
                      $sqls.=$comma."'".$rows[$i]."'";
                      $comma=',';
                  }
                  $sqls.=");nnn";
              }
          }
          $backfilepath=$this->dataDir.date("Ymdhis",time()).'.sql';
           
          //写入文件
          $filehandle = fopen($backfilepath, "w");
          fwrite($filehandle, $sqls);
          fclose($filehandle);
      }
      private function delarray($array){    //处理传入进来的数组
          foreach($array as $tables){
              if($tables=='*'){    //所有的表(获得表名时不能按常规方式来组成一个数组)
                  $newtables=mysql_list_tables($this->dbName,$this->mysql_link);
                  $tableList = array();
                  for ($i = 0; $i < mysql_numrows($newtables); $i++){
                      array_push($tableList,mysql_tablename($newtables, $i));
                  }
                  $tableList=$tableList;
              }else{
                  $tableList=$array;
                  break;
              }
          }
          return $tableList;
      }
  }
  ?>

(编辑:大连站长网)

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