php mysql数据库备份与数据还原类_PHP教程

php中文网
发布: 2016-07-13 17:04:40
原创
906人浏览过

说明,该类适用于小型的网站的数据库备份,内置MYSQL连接,只需要简单配置数据连接 * 及存贮备份的位置即可。 * 类实列化并且连接数据库以后可执行以下操作

php教程 mysql教程数据库教程备份与数据还原类
 /**
  * 说明,该类适用于小型的网站的数据库备份,内置mysql连接,只需要简单配置数据连接
  * 及存贮备份的位置即可。
  * 类实列化并且连接数据库以后可执行以下操作
  * get_db_table($database)    取得所有数据表
  * export_sql($table,$subsection=0))   生成sql文件,注意生成sql文件只保存到服务器目录,不提供下载
  * import_sql($dir)     恢复数据只导入服务器目录下的sql文件
  * 该类制作简单,可任意传播,如何您对该类有什么提议,请发送邮件给小虾
  * @author 赵红健[游天小虾]
  * email:328742379@qq.com
  * qq交流群:69574955 聚义堂-网页制作交
  */

class data {  public   $data_dir    = "class/"; //备份文件存放的路径  public   $transfer     ="";   //临时存放sql[切勿不要对该属性赋值,否则会生成错误的sql语句] /**  *数据库连接  *@param string $host 数据库主机名  *@param string $user 用户名  *@param string $pwd  密码  *@param string $db   选择数据库名  *@param string $charset 编码方式  */  function connect_db($host,$user,$pwd,$db,$charset='gbk'){   if(!$conn = mysql_connect($host,$user,$pwd)){    return false;   }   mysql_select_db($db);   mysql_query("set names $charset");   return true;  } /**  * 生成sql语句  * @param   $table     要备份的表  * @return  $tabledump 生成的sql语句  */  public function set_sql($table,$subsection=0,&$tabledom=''){   $tabledom .= "drop table if exists $tablen";   $createtable = mysql_query("show create table $table");   $create = mysql_fetch_row($createtable);   $create[1] = str_replace("n","",$create[1]);   $create[1] = str_replace("t","",$create[1]);   $tabledom  .= $create[1].";n";   $rows = mysql_query("select * from $table");   $numfields = mysql_num_fields($rows);   $numrows = mysql_num_rows($rows);   $n = 1;   $sqlarry = array();   while ($row = mysql_fetch_row($rows)){      $comma = "";      $tabledom  .= "insert into $table values(";      for($i = 0; $i transfer )>=$subsection*1000){        $sqlarry[$n]= $tabledom;        $tabledom = ''; $n++;      }   }   return $sqlarry;    } /**  *列表数据库中的表  *@param  database $database 要操作的数据库名  *@return array    $dbarray  所列表的数据库表  */  public function get_db_table($database){   $result = mysql_list_tables($database);   while($tmparry = mysql_fetch_row($result)){    $dbarry[]  = $tmparry[0];   }   return $dbarry;  } /**  *验证目录是否有效  *@param diretory $dir  *@return booln  */  function check_write_dir($dir){   if(!is_dir($dir)) {@mkdir($dir, 0777);}   if(is_dir($dir)){    if($link = opendir($dir)){     $filearry = scandir($dir);     for($i=0;$icheck_write_dir($this->data_dir)){echo '您没有权限操作目录,备份失败';return false;}       if($subsection == 0){        if(!is_array($table)){     $this->set_sql($table,0,$this->transfer);    }else{     for($i=0;$iset_sql($table[$i],0,$this->transfer);     }    }        $filename = $this->data_dir.date("ymd",time()).'_all.sql';        if(!$this->write_sql($filename,$this->transfer)){return false;}       }else{        if(!is_array($table)){     $sqlarry = $this->set_sql($table,$subsection,$this->transfer);     $sqlarry[] = $this->transfer;    }else{     $sqlarry = array();     for($i=0;$iset_sql($table[$i],$subsection,$this->transfer);      $sqlarry = array_merge($sqlarry,$tmparry);     }     $sqlarry[] = $this->transfer;    }        for($i=0;$idata_dir.date("ymd",time()).'_part'.$i.'.sql';         if(!$this->write_sql($filename,$sqlarry[$i])){return false;}        }       }       return true;     } /**  *载入sql文件  *@param diretory $dir  *@return booln  *注意:请不在目录下面存放其它文件,或者目录  *以节省恢复时间  */     public function import_sql($dir){   if($link = opendir($dir)){    $filearry = scandir($dir);     $pattern = "_part[0-9]+.sql$|_all.sql$";    for($i=0;$i

 

应用方法

//$d = new data();

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人

//连接数据库
//if(!$d->connect_db('localhost','root','','guestbook','gbk')){
// echo '数据库连接失败';
//}

//查找数据库内所有数据表
//$tablearry = $d->get_db_table('guestbook');

//备份并生成sql文件
//if(!$d->export_sql($tablearry)){
// echo '备份失败';
//}else{
// echo '备份成功';
//}

//恢复导入sql文件夹
//if($d->import_sql($d->data_dir)){
// echo '恢复成功';
//}else{
// echo '恢复失败';
//}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/630845.htmlTechArticle说明,该类适用于小型的网站的数据库备份,内置MYSQL连接,只需要简单配置数据连接 * 及存贮备份的位置即可。 * 类实列化并且连接数据库...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号