CopyCode The Code is as follows: <? PHP
$ Pai_dbhost = 'localhost'; // MySQL host
$ Pai_dbname = 'sq _ test'; // Database Name
$ User_dbuser = 'root'; // database username
$ Export _dbpwd = 'jb51. net'; // Database User Password
$ Pai_db_language = 'utf8'; // database Encoding
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 ('cannot connect to the server! '. SELF: mysqlerror); exit ("unable to connect to the server! ");;
}
If (! Mysql_select_db (SELF: $ dbname )){
SELF: sqlerror ('unable to connect to the database ('. SELF: $ dbname .')! '. SELF: mysqlerror); exit ("unable to connect to the 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 the 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 ();
}
}
/* --- 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 ("creating directory [". $ mdir. "] failed .");
}
}
}
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 = "/* time :". date ("Y-m-d h: I: s "). "*/\ r \ ndrop table if exists '$ T'; \ r \ n ". $ S1 ['create table']. "; \ 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 "Data Backup successful, backup file generated ". getcwd (). "/". $ filename. "/
Programs automatically clean up backups five days ago";
?>