Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692

    Esiste uno script generico x fare il dump d un DB MySQL?

    Mi servirebbe una soluzione gia pronta x fare dump d un DB senza passare x forza a PHPMyAdmin... qualcuno sa consigliarmi qualcosa?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  2. #2

    Re: Esiste uno script generico x fare il dump d un DB MySQL?

    Originariamente inviato da niubbo
    Mi servirebbe una soluzione gia pronta x fare dump d un DB senza passare x forza a PHPMyAdmin... qualcuno sa consigliarmi qualcosa?

    Grazie
    scusa la mia ignoranza ma che cosa vuol dire dump??
    intendi per cancellare il db?? o per svuotarlo??

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: Re: Esiste uno script generico x fare il dump d un DB MySQL?

    Originariamente inviato da vercinstex
    scusa la mia ignoranza ma che cosa vuol dire dump??
    intendi per cancellare il db?? o per svuotarlo??
    sarebbe una copia del db, comprensiva sia della struttura del db che dei dati contiene.

    Per quanto riguarda la sua domanda se fa una ricerca nel forum è pieno di discussioni a riguardo con link a script che fanno ciò che chiede.

  4. #4

    Eccoti lo script generico

    ciao ti posto qui il codice che attualmente uso

    **************** backup.php ********************
    codice:
    <?
    		$target="file";
    		$fileSalvato = "E-Bruno - Dump_Dati del " . date("d-m-Y Gis") . ".sql";
    		if($target=="file")
    		{
    			header('Content-Type: application/octetstream');
    			# header('Content-Disposition: filename="backup.sql"');
    			header('Content-Disposition: filename='. $fileSalvato);
    			$asfile="download";
    		}
    
    		
    		$crlf="\r\n";
    
    		$link = mysql_connect("localhost", "", "");
    		$database = mysql_select_db("il tuo database"); 
    	
    		$dbname = "il tuo database";
    	
    		$dump_buffer="";
    	
    		$tables = mysql_query("show tables from $dbname");
    		$num_tables = mysql_num_rows($tables);
    	
    		if($num_tables == 0)
    		{
    			echo "# nessuna tabella trovata";
    			exit;
    		}
    		
    		$dump_buffer.= "# DatabaseBackup $crlf";
    		$dump_buffer.= "# Backup eseguito da:$crlf";
    		$dump_buffer.= "# ".date("F j, Y, g:i a")."$crlf";
    		$dump_buffer.= "# Database: $dbname$crlf";
    		$dump_buffer.= "# backup tabelle : $dbname $crlf";
    	
    		$i = 0;
    		while($i < $num_tables)
    		{
    			$table = mysql_tablename($tables, $i);
    			//echo $table . "
    ";
    				$dump_buffer.= "# --------------------------------------------------------$crlf";
    				$dump_buffer.= "$crlf#$crlf";
    				$dump_buffer.= "# Struttura per la tabella  '$table'$crlf";
    				$dump_buffer.= "#$crlf$crlf";
    				$db = $table;
    				$dump_buffer.= get_table_def($table, $crlf,$dbname).";$crlf";
    				$dump_buffer.= "$crlf#$crlf";
    				$dump_buffer.= "# Dumping dati tabella '$table'$crlf";
    				$dump_buffer.= "#$crlf$crlf";
    				$tmp_buffer="";
    				get_table_content($dbname, $table, 0, 0, 'my_handler', $dbname);
    				$dump_buffer.=$tmp_buffer;
    				
    			$i++;
    			$dump_buffer.= "$crlf";
    		}
    		echo $dump_buffer;
    		exit;
    	
    	function get_table_def($table, $crlf,$dbname)
    	{
    	
    		$schema_create = "DROP TABLE IF EXISTS $table;$crlf";
    		$db = $table;
    	
    		$schema_create .= "CREATE TABLE $table ($crlf";
    	
    		$result = mysql_query("SHOW FIELDS FROM " .$dbname."."
    		. $table) or die();
    		while($row = mysql_fetch_array($result))
    		{
    			$schema_create .= "   $row[Field] $row[Type]";
    	
    			if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0"))
    				$schema_create .= " DEFAULT '$row[Default]'";
    			if($row["Null"] != "YES")
    				$schema_create .= " NOT NULL";
    			if($row["Extra"] != "")
    				$schema_create .= " $row[Extra]";
    			$schema_create .= ",$crlf";
    		}
    		$schema_create = ereg_replace(",".$crlf."$", "", $schema_create);
    		$result = mysql_query("SHOW KEYS FROM " .$dbname."." .
    		$table) or die();
    		while($row = mysql_fetch_array($result))
    		{
    			$kname=$row['Key_name'];
    			$comment=(isset($row['Comment'])) ? $row['Comment'] : '';
    			$sub_part=(isset($row['Sub_part'])) ? $row['Sub_part'] : '';
    	
    			if(($kname != "PRIMARY") && ($row['Non_unique'] == 0))
    				$kname="UNIQUE|$kname";
    	
    			if($comment=="FULLTEXT")
    				$kname="FULLTEXT|$kname";
    			 if(!isset($index[$kname]))
    				 $index[$kname] = array();
    	
    			if ($sub_part>1)
    			 $index[$kname][] = $row['Column_name'] . "(" . $sub_part . ")";
    			else
    			 $index[$kname][] = $row['Column_name'];
    		}
    	
    		while(list($x, $columns) = @each($index))
    		{
    			 $schema_create .= ",$crlf";
    			 if($x == "PRIMARY")
    				$schema_create .= "   PRIMARY KEY (";
    			 elseif (substr($x,0,6) == "UNIQUE")
    				$schema_create .= "   UNIQUE " .substr($x,7)." (";
    			 elseif (substr($x,0,8) == "FULLTEXT")
    				$schema_create .= "   FULLTEXT ".substr($x,9)." (";
    			 else
    				$schema_create .= "   KEY $x (";
    	
    			$schema_create .= implode($columns,", ") . ")";
    		}
    	
    		$schema_create .= "$crlf)";
    		if(get_magic_quotes_gpc()) {
    		  return (stripslashes($schema_create));
    		} else {
    		  return ($schema_create);
    		}
    	}
    	function get_table_content($db, $table, $limit_from = 0, $limit_to = 0,$handler)
    	{
    		// Defines the offsets to use
    		if ($limit_from > 0) {
    			$limit_from--;
    		} else {
    			$limit_from = 0;
    		}
    		if ($limit_to > 0 && $limit_from >= 0) {
    			$add_query  = " LIMIT $limit_from, $limit_to";
    		} else {
    			$add_query  = '';
    		}
    	
    		get_table_content_fast($db, $table, $add_query,$handler);
    	
    	}
    	
    	function get_table_content_fast($db, $table, $add_query = '',$handler)
    	{
    		$result = mysql_query('SELECT * FROM ' . $db . '.' . $table . $add_query) or die();
    		if ($result != false) {
    	
    			@set_time_limit(1200); // 20 Minutes
    	
    			// Checks whether the field is an integer or not
    			for ($j = 0; $j < mysql_num_fields($result); $j++) {
    				$field_set[$j] = mysql_field_name($result, $j);
    				$type          = mysql_field_type($result, $j);
    				if ($type == 'tinyint' || $type == 'smallint' || $type == 'mediumint' || $type == 'int' ||
    					$type == 'bigint'  ||$type == 'timestamp') {
    					$field_num[$j] = true;
    				} else {
    					$field_num[$j] = false;
    				}
    			} // end for
    	
    			// Get the scheme
    			if (isset($GLOBALS['showcolumns'])) {
    				$fields        = implode(', ', $field_set);
    				$schema_insert = "INSERT INTO $table ($fields) VALUES (";
    			} else {
    				$schema_insert = "INSERT INTO $table VALUES (";
    			}
    	
    			$field_count = mysql_num_fields($result);
    	
    			$search  = array("\x0a","\x0d","\x1a"); //\x08\\x09, not required
    			$replace = array("\\n","\\r","\Z");
    	
    	
    			while ($row = mysql_fetch_row($result)) {
    				for ($j = 0; $j < $field_count; $j++) {
    					if (!isset($row[$j])) {
    						$values[]     = 'NULL';
    					} else if (!empty($row[$j])) {
    						// a number
    						if ($field_num[$j]) {
    							$values[] = $row[$j];
    						}
    						// a string
    						else {
    							$values[] = "'" . str_replace($search, $replace, addslashes($row[$j])) . "'";
    						}
    					} else {
    						$values[]     = "''";
    					} // end if
    				} // end for
    	
    				$insert_line = $schema_insert . implode(',', $values) . ')';
    				unset($values);
    	
    				// Call the handler
    				$handler($insert_line);
    			} // end while
    		} // end if ($result != false)
    	
    		return true;
    	}
    	
    	
    	function my_handler($sql_insert)
    	{
    		global $crlf, $asfile;
    		global $tmp_buffer;
    	
    		if(empty($asfile))
    			$tmp_buffer.= htmlspecialchars("$sql_insert;$crlf");
    		else
    			$tmp_buffer.= "$sql_insert;$crlf";
    	}
    	
    	
    	
    	function faqe_db_error()
    	{
    		return mysql_error();
    	}
    	
    	
    	
    	function faqe_db_insert_id($result)
    	{
    		return mysql_insert_id($result);
    	}
    
    
    ?>
    spero di esserti stato utile.
    Quello che noi osserviamo non è la natura in se stessa, ma la natura esposta al nostro metodo di interrogazione.Werner Heisenberg

  5. #5
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Bello! Complimenti.

    [.:: JaguarXF ::.]
    __________________

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.