$cfg_dbname ='sq_test';//数据库名
$cfg_dbuser ='root';//数据库用户名
$cfg_dbpwd ='123450';//数据库用户密码
$cfg_db_language ='utf8';//数据库编码classdbmysql{publicstatic$dbhost='localhost';publicstatic$dbname;publicstatic$dbuser='root';publicstatic$dbpass;publicstatic$charset='utf8';publicstatic$DB=null;public$querycount=0;publicfunction__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();
}publicfunctionconnect(){
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);
}privatefunctionmysqlerror(){returnmysql_error();
}publicfunctiongetTablesName(){$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;
}publicfunctiongetFields($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;
}publicfunctionfetch_array($sql){$res=mysql_query($sql,self::$DB);$r=mysql_fetch_array($res);mysql_free_result($res);return$r;
}publicfunctionfetch_assoc($sql){$q3=mysql_query($sql,self::$DB);$ra=array();while($data=mysql_fetch_assoc($q3)){$ra[]=$data;
}mysql_free_result($q3);return$ra;
}privatefunctionsqlError($message='',$info='',$sql=''){//保存错误信息到文件echo"{".$message."
DATE:".date('Y-n-j H:i:s')."
ERROR:".$info."
SQL:".$sql."
}
";
}publicfunctionclose(){
self::$DB=null;
}publicfunction__destruct()
{
self::close();
}
}/*---class end*/functionmakedir($dirpath){if(!$dirpath)return0;$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."]失败.");
}
}
}returntrue;
}functiondelDirAndFile($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
\n";
}
}functionfilein($filename="databak/",$table='',$mysql=''){$fp=fopen($filename.'/'.$table.'.sql','w');fputs($fp,$mysql);fclose($fp);
}header("Content-Type:text/html;charset=utf-8");$db=newdbmysql();$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($tableas$t){$s1=$db->fetch_array("show create table `$t`");$mysql="/*Time:".date("Y-m-d H:i:s")."*/\r\nDROP TABLE IF EXISTS `$t`;\r\n".$s1['Create Table'].";\r\n\r\n";$a1=$db->fetch_assoc("select * from `$t`");foreach($a1as$data){$vals=array_values($data);$vals=array_map('addslashes',$vals);$vals=join("','",$vals);$vals="'".$vals."'";$mysql.="INSERT INTO `$t` VALUES ($vals);\r\n";
}$mysql.="\r\n";
filein($filename,$t,$mysql);
}echo"数据备份成功,生成备份文件".getcwd()."/".$filename."/
程序自动清理5天以前的备份";?>