Foros del Web » Programando para Internet » PHP »

descargar una base de datos

Estas en el tema de descargar una base de datos en el foro de PHP en Foros del Web. hola a todos... arto de que todos los scripts que me ponian no me funcionavan... fui buscando por este foro otras alternativas...... hasta que encontre ...
  #1 (permalink)  
Antiguo 25/11/2003, 14:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 21 años, 1 mes
Puntos: 0
descargar una base de datos

hola a todos...
arto de que todos los scripts que me ponian no me funcionavan... fui buscando por este foro otras alternativas...... hasta que encontre un script de un tal fran86 (si mal no recuerdo) que puso un script para descargar los datos de una base de datos a un archivo (osea un backup) sin necesidad de utilizar el dichoso "mysqldump.exe".... ese escript me funciono a las mil maravillas pero solo guardabas los datos de una tabla..... asi que basandome en la idea de ese script he echo otro que funciona con todas las tablas ^_^. solo se tiene que poner el nombre de base de datos y este script extrae los datos de todas las tablas.

aqui les dego el codigo

Código PHP:
<?php
//Variables
$Usuario "elusuario";
$Password "lacontraseña";
$Servidor "localhost";
$BaseDeDatos "labasededatos";
$Archivo "fichero.txt"//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($RespuestaMYSQL_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;
}
?>
bueno que os parece lo que he echo?
probadlo y decidme si hos funciona...... :P (a mi me fuciona)
deberia poner este script en las faqs?

Última edición por cards; 25/11/2003 a las 14:09
  #2 (permalink)  
Antiguo 25/11/2003, 14:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues me parece bien .. Si dices que funciona .. subelo a las FAQ's.

(No tienes que pedir permiso para subir una FAQ .. son libres. Sólo respeta el formato que se dá: Tema: .. Pregunta: .. Respuesta para luego hacer los indices y listo).

Por cierto .. viste este mensaje?:
http://www.forosdelweb.com/showthrea...hreadid=166532

Fijate que incluye cabeceras para generar el .sql comprimido.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/11/2003, 14:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 21 años, 1 mes
Puntos: 0
mmm... si lo vi y me basé en el... pero veo que solo hace 2 dias que lo ha editado... y ya le ha puesto para que lo haga con todas las tablas y con soporte para compresion... (antes solo lo tenia para una tabla y sin compresion)..
osea que me molestado para nada.. :P
  #4 (permalink)  
Antiguo 25/11/2003, 15:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. algo abrás aprendido al desarrollar tu script? .. Eso es lo bueno, saber como se hacen las cosas y como funcionan .. pero si ves algo mejor ... usalo. Yo de hecho no suelo "reinventar la rueda" a menudo .. eso sí, me preocupo de saber como funciona 100% y como lo hace lo que use, para en caso de posibles modificaciones saber por donde meter mano.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 17/09/2005, 16:37
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 9 meses
Puntos: 22
Pero si requiero bajar solo 1 TABLA ?

Es que cada tabla es gigaaaaaaaaante... (10 + Megas)...

Por ello debo bajar tabla por tabla, pero como ?.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:14.