Visualizzazione dei risultati da 1 a 2 su 2

Discussione: backup db

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517

    backup db

    Salve ragazzi, ho trovato questo script sul come eseguire un backup del db, lo script funziona benissimo, il problema sta nel fatto che io al momento del backup non voglio far selezionare la cartella di salvataggio ma far salvare sempre nelle stessa cartella

    lo script è il sequente:
    codice:
    <?php
    
    	set_time_limit(0);
    	error_reporting(E_ALL);
    
    	define('DB_SERVER', 'localhost');
    	define('DB_USER', '');
    	define('DB_PASS', '');
    	define('DB_NAME', '');
    	define('DB_FILE', 'Backup' . date("d_m_Y__\hH_\mi", time()) . '.sql');
    
    	define('DB_DROP', $_GET['drop'] == '1');
    	define('DB_IGNORE', $_GET['ignore'] == '1');
    	define('DB_DATA', $_GET['data'] == '1');
    	define('DB_STRUCTURE', $_GET['struc'] == '1');
    	define('INSERT_QUERIES', 100);
    
    	if (!DB_DROP && !DB_IGNORE && !DB_DATA && !DB_STRUCTURE) exit;
    
    	$db = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die('Errore MySQL: ' . mysql_error() . ' (' . mysql_errno() . ')');
    	mysql_select_db(DB_NAME);
    
    	function datadump($table)
    	{
    		global $db;
    		$dump = @mysql_query("SELECT * FROM `$table`;", $db);
    
    		if (@mysql_num_rows($dump) <= 0)
    			return '';
    
    		$result = "";
    		$insert_fields = "";
    		$stack = array();
    		$colonne = @mysql_query("SHOW COLUMNS FROM `$table`;");
    
    		$cols = array();
    		while ($col = @mysql_fetch_object($colonne))
    		{
    			$cols[$col->Field] = $col->Null;
    			$insert_fields .= "`" . $col->Field . "`, ";
    		}
    
    		$insert_fields = substr($insert_fields, 0, -2);
    
    		while ($d = @mysql_fetch_assoc($dump))
    			$stack[] = $d;
    
    		foreach ($stack as $i => $val)
    		{
    			if (!($i % INSERT_QUERIES))
    			{
    				if (strlen($result))
    					$result = substr($result, 0, -2) . ";\n";
    				$result .= "INSERT " . ((DB_IGNORE) ? 'IGNORE ' : '') . "INTO `$table` ($insert_fields) VALUES ";
    			}
    
    			$result .= "(";
    
    			foreach ($val as $key => $value)
    			{
    				if ($value == NULL)
    				{
    					if ($cols[$key] == "YES")
    						$result .= 'NULL, ';
    					else $result .= "'', ";
    				}
    				else $result .= "'" . mysql_real_escape_string($value, $db) . "', ";
    			}
    
    			$result = substr($result, 0, -2) . "), ";
    		}
    
    		return substr($result, 0, -2) . ";\n";
    	}
    
    	header("Content-type: application/octet-stream");
    	header("Content-Disposition: attachment; filename = " . DB_FILE);
    
    	$query = "SHOW TABLE STATUS FROM `" . DB_NAME . "`;";
    	$tabelle = @mysql_query($query, $db);
    
    	echo 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";' . "\n\n";
    
    	while ($tab = @mysql_fetch_object($tabelle))
    	{
    		if (DB_STRUCTURE)
    		{
    			if (DB_DROP)
    				echo "DROP TABLE IF EXISTS " . $tab->Name . ";\n";
    
    			$query = "SHOW CREATE TABLE `" . $tab->Name . "`;";
    			$create = @mysql_query($query, $db);
    			$create = @mysql_fetch_assoc($create);
    
    			echo $create["Create Table"] . ";\n\n";
    		}
    
    		if (DB_DATA)
    			echo datadump($tab->Name) . "\n\n";
    	}
    
    ?>
    so che devo modificare gli header ma non so come

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    ragazzi grazie cmq ho risolto da sol...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.