summaryrefslogtreecommitdiffstatsabout
path: root/backups.php
blob: 3bb863fb9e30d1ca0dcb2b6c8db6bf8be503fe02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
    /*  
  
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
	
	Autores: Pedro Obregón Mejías
			 Rubén D. Mancera Morán
	Versión: 1.0
	Fecha Liberación del código: 13/07/2004
	Galopín para gnuLinEx 2004 -- Extremadura		 
	
	*/
	

include("config.php");

$Archivo=date(" Y\-m\-d") . "--galopin" . ".sql";
 //podeis poner el nombre de archivo que querais con la extension que os de la gana
$EliminarTablas = true;    //aqui poned si quereis que se elimen las tablas si existen        

//Conectar con la base de datos
$Conexion = mysql_connect($Servidor, $Usuario, $Password);
mysql_select_db($BaseDeDatos, $Conexion);

$ListaTablas = mysql_listtables($BaseDeDatos);
For ($Numero = 0; $Numero < mysql_num_rows ($ListaTablas); $Numero++) {
    $Tablas[] = mysql_tablename ($ListaTablas, $Numero);
    $Querys .= CrearQuerys( $Conexion, $Tablas[$Numero], $EliminarTablas);
}

// Enviamos los datos
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$Archivo");
echo $Querys;

Function CrearQuerys($Conexion, $Tabla, $EliminarTablas) {
// Query que elimina las tablas si existen
if ($EliminarTablas) {
    $QueryEliminarTabla = "DROP TABLE IF EXISTS `$Tabla`;";
}

// Query que crea la estructura de la tabla
$sql= "SHOW CREATE TABLE $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
$ArrayRespuesta = mysql_fetch_array($Respuesta);
$QueryEstructuraTabla = $ArrayRespuesta[1].";";

// Query que introduce los datos en la tabla
$sql = "SELECT * FROM $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
while ($Fila = mysql_fetch_array($Respuesta, MYSQL_ASSOC)) {
    $Columnas = array_keys($Fila);
     foreach ($Columnas as $Columna) {
         if ( gettype($Fila[$Columna]) == "NULL" ) {
            $Valores[] = "NULL";
         } else {
             $Valores[] = "'".$Fila[$Columna]."'";
        }
    }
    $QueryInsertarDatos .= "INSERT INTO `$Tabla` VALUES (".implode(", ", $Valores).");\n";
    unset($Valores);
}

$Contenido = <<<EOT
$QueryEliminarTabla
$QueryEstructuraTabla
$QueryInsertarDatos

EOT;

return $Contenido;
}

?>