Backup mysql database PHP code of a table a file

  • 2020-03-31 20:49:02
  • OfStack

 
<?php 
$cfg_dbhost ='localhost';//Mysql host
$cfg_dbname ='sq_test';//The database name
$cfg_dbuser ='root';//Database user name
$cfg_dbpwd ='jb51.net';//Database user password
$cfg_db_language ='utf8';//Database coding

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(' Unable to connect to server !'.self::mysqlerror);exit(" Unable to connect to server !");; 
} 
if(!mysql_select_db(self::$dbname)){ 
self::sqlError(' Unable to connect to database ('.self::$dbname.')!'.self::mysqlerror);exit(" Unable to connect to database !"); 
} 
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=''){//Save the error message to a file
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(); 
} 
} 

 

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(" Create a directory  [".$mdir."] failure ."); 
} 
} 
} 
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 " Successfully deleted directory:  $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="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 " Data backup successful , Generate backup files    ".getcwd()."/".$filename."/<br/> Program auto-cleaning 5 Days ago backup "; 
?> 

Related articles: