Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Exportar Tabla MySQL y guardarla en Carpeta con PHP

Estas en el tema de Exportar Tabla MySQL y guardarla en Carpeta con PHP en el foro de PHP en Foros del Web. Hola, alguien me puede decir como hago para: Exportar una Tabla MySQL, y guardar el archivo en una carpeta del servidor, pero usando solo un ...
  #1 (permalink)  
Antiguo 27/04/2014, 19:06
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Exportar Tabla MySQL y guardarla en Carpeta con PHP

Hola, alguien me puede decir como hago para:

Exportar una Tabla MySQL, y guardar el archivo en una carpeta del servidor, pero usando solo un script PHP

Gracias.
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #2 (permalink)  
Antiguo 27/04/2014, 21:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

Si lo quieres hacer tu el script....... debes mirar la tabla 'information_schema' que tiene informacion que necesitaras
__________________
Salu2!
  #3 (permalink)  
Antiguo 28/04/2014, 09:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

Cita:
Iniciado por insyse Ver Mensaje
Hola, alguien me puede decir como hago para:

Exportar una Tabla MySQL, y guardar el archivo en una carpeta del servidor, pero usando solo un script PHP

Gracias.
Técnicamente, la tabla MySQL no la puedes exportar literalmente hablando como un archivo. Solamente puedes exportar el contenido , cosa que puedes hacer en CSV, o procesarla para convertirla en un archivo de Excel.
Con ciertas librerías, incluso, puedes exportarla otros formatos, pero en todos los casos será algo diferente, y no una tabla MYSQL.
Las tablas de una base de datos no son archivos, sino estructuras algo más complejas, dependientes del DBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 28/04/2014, 12:39
Avatar de paginaswebs  
Fecha de Ingreso: febrero-2013
Mensajes: 74
Antigüedad: 11 años, 2 meses
Puntos: 3
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

Mira la tabla information_schema y verifica los datos de la misma
  #5 (permalink)  
Antiguo 29/04/2014, 07:18
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

A los que les sirva, les cuento que si hay forma de exportar la tabla incluso la bd entera con un script en php..

Aqui esta la función que encontré y que funciono perfecto.

Código PHP:
<?php 
error_reporting
(0);
date_default_timezone_set("America/Bogota" );
function &
backup_tables($host$user$pass$name$tables '*'){
  
$data "\n/*---------------------------------------------------------------".
          
"\n  SQL DB BACKUP ".date("d.m.Y H:i")." ".
          
"\n  HOST: {$host}".
          
"\n  DATABASE: {$name}".
          
"\n  TABLES: {$tables}".
          
"\n  ---------------------------------------------------------------*/\n";
  
$link mysql_connect($host,$user,$pass);
  
mysql_select_db($name,$link);
  
mysql_query"SET NAMES `utf8` COLLATE `utf8_general_ci`" $link ); // Unicode

  
if($tables == '*'){ //get all of the tables
    
$tables = array();
    
$result mysql_query("SHOW TABLES");
    while(
$row mysql_fetch_row($result)){
      
$tables[] = $row[0];
    }
  }else{
    
$tables is_array($tables) ? $tables explode(',',$tables);
  }

  foreach(
$tables as $table){
    
$data.= "\n/*---------------------------------------------------------------".
            
"\n  TABLE: `{$table}`".
            
"\n  ---------------------------------------------------------------*/\n";           
    
$data.= "DROP TABLE IF EXISTS `{$table}`;\n";
    
$res mysql_query("SHOW CREATE TABLE `{$table}`"$link);
    
$row mysql_fetch_row($res);
    
$data.= $row[1].";\n";

    
$result mysql_query("SELECT * FROM `{$table}`"$link);
    
$num_rows mysql_num_rows($result);    

    if(
$num_rows>0){
      
$vals = Array(); $z=0;
      for(
$i=0$i<$num_rows$i++){
        
$items mysql_fetch_row($result);
        
$vals[$z]="(";
        for(
$j=0$j<count($items); $j++){
          if (isset(
$items[$j])) { $vals[$z].= "'".mysql_real_escape_string$items[$j], $link )."'"; } else { $vals[$z].= "NULL"; }
          if (
$j<(count($items)-1)){ $vals[$z].= ","; }
        }
        
$vals[$z].= ")"$z++;
      }
      
$data.= "INSERT INTO `{$table}` VALUES ";      
      
$data .= "  ".implode(";\nINSERT INTO `{$table}` VALUES "$vals).";\n";
    }
  }
  
mysql_close$link );
  return 
$data;
}

unlink ('BKP/db-backup.sql');
$backup_file 'BKP/db-backup.sql';

// get backup
$mybackup backup_tables("MISERVIDOR","MI_USUARIO_BD","MI_PASS_BD","MI_BD","MI_TABLA_OPCIONAL");

// save to file
$handle fopen($backup_file,'w+');
fwrite($handle,$mybackup);
fclose($handle);
$result mysql_query("SHOW TABLES");
?>
__________________
.................................................. ...........................
No todos nacemos aprendidos !
  #6 (permalink)  
Antiguo 29/04/2014, 07:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

Muy interesante, pero tiene algunos problemas:
1) No respeta la lógica de creación de las tablas por dependencia de FK, si existe. El script sólo aplica de forma transparente a las bases con tablas MyISAM, pero no las InnoDB.
2) No recupera los stored procedures, stored functions, ni triggers que existan.
3) No recupera las vistas (VIEW) que puedan existir.
4) No recupera todos los índices.

SI lo que querías era crear un backup (cosa que no fue lo que explicaste al principio), podrías usar directamente el mysqldump.exe, que viene con el rpopio MySQL, y se encuentra en la carpeta /bin del MySQL.
De haber dicho desde el principio que lo que querías crear era un backup, te lo hubiesemos dicho directamente. Tu hablabas de exportar una tabla, no de hacer copias de respaldo. No son la misma cosa desde nuestro punto de vista.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 29/04/2014, 07:48
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Exportar Tabla MySQL y guardarla en Carpeta con PHP

Gracias a todos los que comentaron de todo se aprende...
__________________
.................................................. ...........................
No todos nacemos aprendidos !

Etiquetas: carpeta, mysql, tabla
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




La zona horaria es GMT -6. Ahora son las 13:54.