当前位置:首页 > PHP教程 > php类库 > 列表

mysql 数据备份类代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-11 22:59:34 浏览: 评论:0 

说明,该类适用于小型的网站的数据库教程备份,内置mysql连接,只需要简单配置数据连接及存贮备份的位置即可.

类中show_dir_file() 方法可直接返回备份目录下的所有文件,返回以数组形式.

方法 expord_sql() 直接生成sql文件,该类制作简单,可任意传播,如何您对该类有什么提议,请发送邮件给小虾.

mysql 数据备份类代码如下:

  1. class data { 
  2.  public   $data_dir    = "class/";     //备份文件存放的路径 
  3.  public   $data_name   = "111cnnet.sql";   //备份文件名 
  4.  private  $mysql_host  = "localhost";    //数据库地址 
  5.  private  $mysql_user  = "root";     //用户名 
  6.  private  $mysql_pwd   = "lpl19881129";    //密码 
  7.  private  $mysql_db    = "date";     //数据库名 
  8.  private  $mysql_code  = "gbk";      //编码方式 
  9. /*** 
  10.  * 1.连接数据库 
  11.  * **/ 
  12.  function __construct(){ 
  13.   $conn = mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pwd); 
  14.   mysql_select_db($this->mysql_db); 
  15.   mysql_query("set names $this->mysql_code"); 
  16.  } 
  17. /*** 
  18.  * 2.生成sql语句 
  19.  * **/ 
  20.  private function set_sql($table){ 
  21.   $tabledump = "drop table if exists $table; "
  22.   $createtable = mysql_query("show create table $table"); 
  23.   $create = mysql_fetch_row($createtable); 
  24.   $tabledump .= $create[1]."; "
  25.   $rows = mysql_query("select * from $table"); 
  26.   $numfields = mysql_num_fields($rows); 
  27.   $numrows = mysql_num_rows($rows); 
  28.   while ($row = mysql_fetch_row($rows)){ 
  29.      $comma = ""
  30.      $tabledump .= "insert into $table values("
  31.      for($i = 0; $i < $numfields$i++) 
  32.      { 
  33.     $tabledump .= $comma."'".mysql_escape_string($row[$i])."'"
  34.     $comma = ","
  35.      } 
  36.      $tabledump .= "); "
  37.   } 
  38.   $tabledump .= " "
  39.   return $tabledump
  40.    } 
  41. /*** 
  42.  * 3.显示存放目录下已经备份的文件 
  43.  * **/ 
  44.     public function show_dir_file() { 
  45.   $dir = $this->data_dir; 
  46.      if(!is_dir($dir)){ 
  47.    if(!mkdir($dir)){ 
  48.     echo "文件夹不存在,尝试创建文件夹,创建失败,可能是您没有相关权限"
  49.     exit(); 
  50.    }else
  51.     chmod($dir,755); 
  52.    } 
  53.      } 
  54.   if(!is_writable($dir)){ 
  55.    echo " 文件不可写"
  56.    exit(); 
  57.   } 
  58.   $link = opendir($dir); 
  59.   if(!$link){ 
  60.    echo "创建链接失败"
  61.    exit(); 
  62.   } 
  63.   return scandir($dir); 
  64.     } 
  65. /*** 
  66.  * 4.生成sql文件 
  67.  * **/ 
  68.     public function expord_sql(){ 
  69.      $this->show_dir_file(); 
  70.      $result = mysql_list_tables($this->mysql_db); 
  71.   while($arr = mysql_fetch_row($result)){ 
  72.    $tables .= $this->set_sql($arr[0]); 
  73.   }//开源代码phpfensi.com 
  74.   $file = $this->data_dir.$this->data_name; 
  75.   $link = fopen($file,"w+"); 
  76.   if(!is_writable($file)){ 
  77.    echo "文件不可写"
  78.    exit(); 
  79.   } 
  80.   fwrite($link,$tables); 
  81.   fclose($link); 
  82.   echo "备份成功"
  83.     } 
  84. }

Tags: mysql 数据备份 mysql 备份类

分享到: