Code to back up mysql data through php
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-25 08:43:14
Original
992 people have browsed it
-
- #####################
- //CONFIGURATIONS
- #####################
- // Define the name of the backup directory
- define('BACKUP_DIR', './myBackups' ) ;
- // Define Database Credentials
- define('HOST', 'localhost' ) ;
- define('USER', 'testd!b' ) ;
- define('PASSWORD', 'k^$2y4n9@#VV' ) ;
- define('DB_NAME', 'test123' ) ;
- /*
- Define the filename for the sql file
- If you plan to upload the file to Amazon's S3 service , use only lower-case letters
- */
- $fileName = 'mysqlbackup--' . date('d-m-Y') . '@'.date('h.i.s').'.sql' ;
- // Set execution time limit
- if(function_exists('max_execution_time')) {
- if( ini_get('max_execution_time') > 0 ) set_time_limit(0) ;
- }
-
- ###########################
-
- //END OF CONFIGURATIONS
-
- ###########################
-
- // Check if directory is already created and has the proper permissions
- if (!file_exists(BACKUP_DIR)) mkdir(BACKUP_DIR , 0700) ;
- if (!is_writable(BACKUP_DIR)) chmod(BACKUP_DIR , 0700) ;
-
- // Create an ".htaccess" file , it will restrict direct accss to the backup-directory .
- $content = 'deny from all' ;
- $file = new SplFileObject(BACKUP_DIR . '/.htaccess', "w") ;
- $file->fwrite($content) ;
-
- $mysqli = new mysqli(HOST , USER , PASSWORD , DB_NAME) ;
- if (mysqli_connect_errno())
- {
- printf("Connect failed: %s", mysqli_connect_error());
- exit();
- }
- // Introduction information
- $return .= "--n";
- $return .= "-- A Mysql Backup System n";
- $return .= "--n";
- $return .= '-- Export created: ' . date("Y/m/d") . ' on ' . date("h:i") . "nnn";
- $return = "--n";
- $return .= "-- Database : " . DB_NAME . "n";
- $return .= "--n";
- $return .= "-- --------------------------------------------------n";
- $return .= "-- ---------------------------------------------------n";
- $return .= 'SET AUTOCOMMIT = 0 ;' ."n" ;
- $return .= 'SET FOREIGN_KEY_CHECKS=0 ;' ."n" ;
- $tables = array() ;
- // Exploring what tables this database has
- $result = $mysqli->query('SHOW TABLES' ) ;
- // Cycle through "$result" and put content into an array
- while ($row = $result->fetch_row())
- {
- $tables[] = $row[0] ;
- }
- // Cycle through each table
- foreach($tables as $table)
- {
- // Get content of each table
- $result = $mysqli->query('SELECT * FROM '. $table) ;
- // Get number of fields (columns) of each table
- $num_fields = $mysqli->field_count ;
- // Add table information
- $return .= "--n" ;
- $return .= '-- Tabel structure for table `' . $table . '`' . "n" ;
- $return .= "--n" ;
- $return.= 'DROP TABLE IF EXISTS `'.$table.'`;' . "n" ;
- // Get the table-shema
- $shema = $mysqli->query('SHOW CREATE TABLE '.$table) ;
- // Extract table shema
- $tableshema = $shema->fetch_row() ;
- // Append table-shema into code
- $return.= $tableshema[1].";" . "nn" ;
- // Cycle through each table-row
- while($rowdata = $result->fetch_row())
- {
- // Prepare code that will insert data into table
- $return .= 'INSERT INTO `'.$table .'` VALUES ( ' ;
- // Extract data of each row
- for($i=0; $i<$num_fields; $i++)
- {
- $return .= '"'.$rowdata[$i] . ""," ;
- }
- // Let's remove the last comma
- $return = substr("$return", 0, -1) ;
- $return .= ");" ."n" ;
- }
- $return .= "nn" ;
- }
- // Close the connection
- $mysqli->close() ;
- $return .= 'SET FOREIGN_KEY_CHECKS = 1 ; ' . "n" ;
- $return .= 'COMMIT ; ' . "n" ;
- $return .= 'SET AUTOCOMMIT = 1 ; ' . "n" ;
- //$file = file_put_contents($fileName , $return) ;
- $zip = new ZipArchive() ;
- $resOpen = $zip->open(BACKUP_DIR . '/' .$fileName.".zip" , ZIPARCHIVE::CREATE) ;
- if( $resOpen ){
- $zip->addFromString( $fileName , "$return" ) ;
- }
- $zip->close() ;
- $fileSize = get_file_size_unit(filesize(BACKUP_DIR . "/". $fileName . '.zip')) ;
- $message = <<
BACKUP completed ,
- the archive has the name of : $fileName and it's file-size is : $fileSize .
- This zip archive can't be accessed via a web browser , as it's stored into a protected directory .
- It's highly recomended to transfer this backup to another filesystem , use your favorite FTP client to download the archieve .
- msg;
- echo $message ;
-
- // Function to append proper Unit after file-size .
- function get_file_size_unit($file_size){
- switch (true) {
- case ($file_size/1024 < 1) :
- return intval($file_size ) ." Bytes" ;
- break;
- case ($file_size/1024 >= 1 && $file_size/(1024*1024) < 1) :
- return intval($file_size/1024) ." KB" ;
- break;
- default:
- return intval($file_size/(1024*1024)) ." MB" ;
- }
- }
复制代码
|
php, mysql
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
Latest Issues
-
2025-03-26 19:48:00
-
2025-03-26 19:40:08
-
2025-03-26 12:24:37
-
2025-03-26 12:20:46
-
2025-03-21 13:39:34