备份mysql数据库的php代码(一个表一个文件)_php教程-查字典教程网
备份mysql数据库的php代码(一个表一个文件)
备份mysql数据库的php代码(一个表一个文件)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<?php

$cfg_dbhost ='localhost';//mysql主机

$cfg_dbname ='sq_test';//数据库名

$cfg_dbuser ='root';//数据库用户名

$cfg_dbpwd ='jb51.net';//数据库用户密码

$cfg_db_language ='utf8';//数据库编码

class dbmysql{

public static $dbhost = 'localhost';

public static $dbname;

public static $dbuser = 'root';

public static $dbpass;

public static $charset = 'utf8';

public static $DB = null;

public $querycount = 0;

public function __construct()

{

self::$dbhost = $GLOBALS['cfg_dbhost'];

self::$dbname = $GLOBALS['cfg_dbname'];

self::$dbuser = $GLOBALS['cfg_dbuser'];

self::$dbpass = $GLOBALS['cfg_dbpwd'];

self::$charset= $GLOBALS['cfg_db_language'];

self::connect();

}

public function connect(){

self::$DB=mysql_connect(self::$dbhost,self::$dbuser,self::$dbpass);

if(!self::$DB){

self::sqlError('无法连接服务器!'.self::mysqlerror);exit("无法连接服务器!");;

}

if(!mysql_select_db(self::$dbname)){

self::sqlError('无法连接数据库('.self::$dbname.')!'.self::mysqlerror);exit("无法连接数据库!");

}

mysql_query("SET NAMES '".self::$charset."', character_set_client=binary, sql_mode='';",self::$DB);

}

private function mysqlerror(){

return mysql_error();

}

public function getTablesName(){

$res = mysql_query('SHOW TABLES FROM '.self::$dbname,self::$DB);

$tables=array();

while ($row=mysql_fetch_row($res))$tables[]=$row[0];

mysql_free_result($res);

return $tables;

}

public function getFields($table){

$res=mysql_query('DESCRIBE '.$table,self::$DB);

$tables=array();

while($row=mysql_fetch_row($res))$tables[]=$row[0];

mysql_free_result($res);

return $tables;

}

public function fetch_array($sql){

$res=mysql_query($sql,self::$DB);

$r=mysql_fetch_array($res);

mysql_free_result($res);

return $r;

}

public function fetch_assoc($sql){

$q3=mysql_query($sql,self::$DB); $ra=array();

while($data=mysql_fetch_assoc($q3)){

$ra[]=$data;

}

mysql_free_result($q3);

return $ra;

}

private function sqlError($message='',$info ='',$sql=''){//保存错误信息到文件

echo "{".$message."<br/>DATE: ".date('Y-n-j H:i:s')."<br/>ERROR: ".$info."<br/>SQL: ".$sql."<br/>}<br/>";

}

public function close(){

self::$DB =null;

}

public function __destruct()

{

self::close();

}

}

/*---class end*/

function makedir($dirpath){

if(!$dirpath) return 0;

$dirpath=str_replace("","/",$dirpath); $mdir="";

foreach(explode("/",$dirpath) as $val){

$mdir.=$val."/";

if($val==".."||$val==".")continue;

if(!is_dir($mdir)&&!file_exists($mdir)){

if(!@mkdir($mdir,0755)){

exit("创建目录 [".$mdir."]失败.");

}

}

}

return true;

}

function delDirAndFile($dirName){

if($handle=opendir($dirName)){

while(false!==($item = readdir($handle))){

if($item !="."&&$item!=".."){

if(is_dir( "$dirName/$item")){

delDirAndFile( "$dirName/$item");

}else{ unlink("$dirName/$item"); }

}

}

closedir( $handle );

if( rmdir( $dirName ) )echo "成功删除目录: $dirName<br/>n";

}

}

function filein($filename="databak/",$table='',$mysql=''){

$fp = fopen($filename.'/'.$table.'.sql','w');

fputs($fp,$mysql);

fclose($fp);

}

header("Content-Type:text/html;charset=utf-8");

$db=new dbmysql();

$table=$db->getTablesName();

$filename="databak/".date("Ymd");

$url=getcwd()."/databak/";

$handle = opendir($url);

while(false!==($file = readdir($handle))){

if ($file!="."&&$file!=".."&&is_dir($url."/".$file)) {

if(date("Ymd")-$file>5){delDirAndFile($url."/".$file);};

}

}

makedir($filename);

foreach($table as $t){

$s1=$db->fetch_array("show create table `$t`");

$mysql="/*Time:".date("Y-m-d H:i:s")." */rnDROP TABLE IF EXISTS `$t`;rn".$s1['Create Table'].";rnrn";

$a1=$db->fetch_assoc("select * from `$t`");

foreach ($a1 as $data){

$vals=array_values($data);

$vals=array_map('addslashes',$vals);

$vals=join("','",$vals);

$vals="'".$vals."'";

$mysql.="INSERT INTO `$t` VALUES ($vals);rn";

}

$mysql.="rn";

filein($filename,$t,$mysql);

}

echo "数据备份成功,生成备份文件 ".getcwd()."/".$filename."/<br/>程序自动清理5天以前的备份";

?>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类