/** * Custom array_replace_recursive to be used if PHP < 5.3 * * @return array */ public static function array_replace_recursive($array1, $array2) { if (function_exists('array_replace_recursive')) { return array_replace_recursive($array1, $array2); } else { foreach ($array2 as $key => $value) { if (is_array($value)) { $array1[$key] = Mysqldump::array_replace_recursive($array1[$key], $value); } else { $array1[$key] = $value; } } return $array1; } }
/** * Tests Abstraction::run */ public function testRunFail() { $path = realpath(__DIR__ . '/../../../_files/bin'); $mysqldump = new Mysqldump($path); $result = $this->getMockBuilder('\\phpbu\\App\\Cli\\Result')->disableOriginalConstructor()->getMock(); $result->method('getCode')->willReturn(1); $process = $this->getMockBuilder('\\phpbu\\App\\Cli\\Process')->disableOriginalConstructor()->getMock(); $process->method('run')->willReturn($result); $process->method('isOutputRedirected')->willReturn(true); $process->method('getRedirectPath')->willReturn('/tmp/foo.txt'); $mysqldump->setProcess($process); $res = $mysqldump->run(); $this->assertEquals(1, $res->getCode()); }
<?php /******************************************* * * 2014 - Programación Web * Grado en Ingeniería Informática * * Ernesto Serrano <*****@*****.**> * * ******************************************* * * Esta es la parte del controlador para generar backup de la base de datos * ******************************************************************************/ // Establecemos el nombre que tendrá el archivo de backup en base a la fecha actual $filename = "hotel_backup_" . date("Ymd") . ".sql"; // Establecemos las opciones de mysqldump $dumpSettings = array("compress" => "GZIP", "no-data" => false, "add-drop-database" => false, "add-drop-table" => true, "single-transaction" => false, "lock-tables" => false, "add-locks" => false, "extended-insert" => true, "disable-foreign-keys-check" => false); // Instanciamos la clase Mysqldum y llamamos al método que comienza un dump de la base de datos $dump = new Mysqldump(DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, "mysql", $dumpSettings); $dump->start("backups/{$filename}");
fclose ($file); */ } //export HML // Export database definitions as readable text echo_flush("Exporting database definitions as readable text<br>"); $url = HEURIST_BASE_URL . "admin/describe/getDBStructureAsSQL.php?db=" . HEURIST_DBNAME . "&pretty=1"; saveURLasFile($url, $folder . "/Database_Structure.txt"); echo_flush("Exporting database definitions as XML<br>"); $url = HEURIST_BASE_URL . "admin/describe/getDBStructureAsXML.php?db=" . HEURIST_DBNAME; saveURLasFile($url, $folder . "/Database_Structure.xml"); if (is_admin()) { // Do an SQL dump of the whole database echo_flush("Exporting SQL dump of the whole database<br>"); try { $dump = new Mysqldump(DATABASE, ADMIN_DBUSERNAME, ADMIN_DBUSERPSWD, HEURIST_DBSERVER_NAME, 'mysql', array('skip-triggers' => true, 'add-drop-trigger' => false)); $dump->start($folder . "/" . HEURIST_DBNAME . "_MySQL_Database_Dump.sql"); } catch (Exception $e) { if (file_exists($progress_flag)) { unlink($progress_flag); } print '</div><script>document.getElementById("divProgress").style.display="none";</script>'; die("<h2>Error</h2>Unable to generate MySQL database dump." . $e->getMessage() . $please_advise); } } //this coode not used anymore - we copy entire content of file_uploads if (false && $_REQUEST['includeresources']) { echo_flush("Exporting resources (indexed/uploaded files)<br>"); $squery = "select rec_ID, ulf_ID, ulf_FilePath, ulf_FileName, ulf_OrigFileName, ulf_MimeExt "; $ourwhere = " and (dtl_RecID=rec_ID) and (ulf_ID = dtl_UploadedFileID) "; $detTable = ", recDetails, recUploadedFiles ";