mysql 数据备份类代码

说明,该类适用于小型的网站的数据库教程备份,内置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. }