复制代码代码如下:
$cfg_dbhost='localhost';//mysql主机
$cfg_dbname='sq_test';//数据库名
$cfg_dbuser='root';//数据库用户名
$cfg_dbpwd='jb51.net';//数据库用户密码
$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("SETNAMES'".self::$charset."',character_set_client=binary,sql_mode='';",self::$DB);
}
privatefunctionmysqlerror(){
returnmysql_error();
}
publicfunctiongetTablesName(){
$res=mysql_query('SHOWTABLESFROM'.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-jH:i:s')."
ERROR:".$info."
SQL:".$sql."
}
";
}
publicfunctionclose(){
self::$DB=null;
}
publicfunction__destruct()
{
self::close();
}
}
/*---classend*/
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("showcreatetable`$t`");
$mysql="/*Time:".date("Y-m-dH:i:s")."*/rnDROPTABLEIFEXISTS`$t`;rn".$s1['CreateTable'].";rnrn";
$a1=$db->fetch_assoc("select*from`$t`");
foreach($a1as$data){
$vals=array_values($data);
$vals=array_map('addsla
shes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="INSERTINTO`$t`VALUES($vals);rn";
}
$mysql.="rn";
filein($filename,$t,$mysql);
}
echo"数据备份成功,生成备份文件".getcwd()."/".$filename."/
程序自动清理5天以前的备份";
?>
您可能感兴趣的文章:thinkPHP使用pclzip打包备份mysql数据库的方法使用PHP备份MYSQL数据的多种方法使用PHP备份MySQL和网站发送到邮箱实例代码PHPXML备份Mysql数据库用PHP实现XML备份Mysql数据库PHP备份/还原MySQL数据库的代码php实现MySQL数据库备份与还原类实例详解MYSQL的备份还原(PHP实现)mysql命令行还原phpMyAdmin导出的含有中文的SQL文件php简单备份与还原MySql的方法