/** * Run the task, and do the business * * @param SS_HTTPRequest $httpRequest */ function run($httpRequest) { global $databaseConfig; // environment type Director::set_environment_type("dev"); // debug ini_set("display_errors", "2"); ERROR_REPORTING(E_ALL); /* $dbhost = $databaseConfig['server']; $dbuser = $databaseConfig['username']; $dbpwd = $databaseConfig['password']; $dbname = $databaseConfig['database']; $backupfolder = $_SERVER['DOCUMENT_ROOT'].'/db_backups'; $dumpfile = $backupfolder."/".$dbname."_".date("Y-m-d_H-i-s").".sql"; if (!is_dir($backupfolder)) mkdir($backupfolder); passthru("/usr/bin/mysqldump --opt --host=$dbhost --user=$dbuser --password=$dbpwd $dbname > $dumpfile"); echo "Created: ".$dumpfile; passthru("tail -1 $dumpfile"); */ $drop_table_if_exists = false; //Add MySQL 'DROP TABLE IF EXISTS' Statement To Output $dbhost = $databaseConfig['server']; $dbuser = $databaseConfig['username']; $dbpass = $databaseConfig['password']; $dbname = $databaseConfig['database']; $backupfolder = __DIR__ . '/../../db_backups'; $dumpfile = $backupfolder . "/" . $dbname . "_" . date("Y-m-d_H-i-s") . ".sql"; $backup = new MySQLDump(); $backup->droptableifexists = $drop_table_if_exists; $backup->connect($dbhost, $dbuser, $dbpass, $dbname); //Connect To Database if (!$backup->connected) { die('Error: ' . $backup->mysql_error); } //On Failed Connection, Show Error. $backup->list_tables(); //List Database Tables. $broj = count($backup->tables); //Count Database Tables. $output = ''; echo "found " . $broj . " tables \n\n"; for ($i = 0; $i < $broj; $i++) { $table_name = $backup->tables[$i]; //Get Table Names. $backup->dump_table($table_name); //Dump Data to the Output Buffer. $output .= $backup->output; } if (!is_dir($backupfolder)) { mkdir($backupfolder); } file_put_contents($dumpfile, $output); echo "Dumped into " . $dumpfile; //echo "<pre>".$output."</pre>"; }
//if not connected, display error $backup->list_tables(); //list all tables $broj = count($backup->tables); //count all tables, $backup->tables will be array of table names //echo "<pre>\n"; //start preformatted output $somecontent .= "-- Dumping tables for database: `{$dbname}`\n"; //write "intro" ;) $somecontent .= "\n\nSET FOREIGN_KEY_CHECKS=0; \n"; //write "intro" ;) //dump all tables: for ($i = 0; $i < $broj; $i++) { $table_name = $backup->tables[$i]; //get table name if ($table_name != 'at_system_users') { $backup->dump_table($table_name); //dump it to output (buffer) $somecontent .= $backup->output; //write output } } $somecontent .= "\n\nSET FOREIGN_KEY_CHECKS=1; \n\n"; //write "intro" ;) //create the zip archive $zip = new ZipArchive(); $zipfilename = "backup/" . $backupName; $res = $zip->open($zipfilename, ZipArchive::CREATE); if ($res === TRUE) { $zip->addFromString($backupName . '.sql', $somecontent); $zip->close(); echo '  <a href="' . $zipfilename . '"><button name="backup" type="button" class="btn btn-primary btn-lg"> Click Here to Download System Backup</button></a>';
$backup = new MySQLDump(); //set drop table if exists $backup->droptableifexists = true; //connect to mysql server (host, user, pass, db) $backup->connect($mysql_data_host, $mysql_data_username, $mysql_data_password, 'ipp'); //if not connected, display error if (!$backup->connected) { die('Error: ' . $backup->mysql_error); } //get all tables in db $backup->list_tables(); //reset buffer $buffer = ''; //go through all tables and dump them to buffer foreach ($backup->tables as $table) { $buffer .= $backup->dump_table($table); } if (strstr($HTTP_USER_AGENT, "MSIE 5.5")) { // had to make it MSIE 5.5 because if 6 has no "attachment;" in it it defaults to "inline" $attachment = ""; } else { $attachment = "attachment;"; } header("Pragma: "); header("Cache-Control: "); header("Content-Length: " . strlen($buffer)); //display dumped buffer header("Content-Type: text/x-sql"); //header("Content-Disposition: attachment; filename=ipp_database_" . date("Y-m-d_H.m.s") . ".sql"); header("Content-disposition: {$attachment} filename=\"ipp_database_" . date("Y-m-d_H.m.s") . ".sql\""); echo $buffer;