php
$cfg_dbhost ='localhost';//mysql主机
$cfg_dbname ='sq_test';//数据库名
$cfg_dbuser ='root';//数据库用户名
$cfg_dbpwd ='123450';//数据库用户密码
$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 . "
DATE: " . date ( ' Y-n-j H:i:s ' ) . "
ERROR: " . $info . "
SQL: " . $sql . "
}
" ;
}
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
\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 " ) . " */\r\nDROP TABLE IF EXISTS ` $t `;\r\n " . $s1 [ ' Create Table ' ] . " ;\r\n\r\n " ;
$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 );\r\n " ;
}
$mysql .= " \r\n " ;
filein( $filename , $t , $mysql );
}
echo " 数据备份成功,生成备份文件 " . getcwd () . " / " . $filename . " /
程序自动清理5天以前的备份 " ;
?>
$cfg_dbhost ='localhost';//mysql主机
$cfg_dbname ='sq_test';//数据库名
$cfg_dbuser ='root';//数据库用户名
$cfg_dbpwd ='123450';//数据库用户密码
$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 . "
DATE: " . date ( ' Y-n-j H:i:s ' ) . "
ERROR: " . $info . "
SQL: " . $sql . "
}
" ;
}
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
\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 " ) . " */\r\nDROP TABLE IF EXISTS ` $t `;\r\n " . $s1 [ ' Create Table ' ] . " ;\r\n\r\n " ;
$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 );\r\n " ;
}
$mysql .= " \r\n " ;
filein( $filename , $t , $mysql );
}
echo " 数据备份成功,生成备份文件 " . getcwd () . " / " . $filename . " /
程序自动清理5天以前的备份 " ;
?>