Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2018, 10:34
mensajeescrito
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
exportar tabla con extension sql de una msql server usando un script en php

Hola buenas amigas y amigos, verán llevo toda la tarde buscando y programando y nada que no hay manera.

Lo que estoy intentando es conectarme a una bbdd sql server y una vez hecho eso

entonces exportar una tabla de esa base de datos pero exportarla en extension

.sql para poder ser tratada.

Esta exportacion a formato .sql debe ser mediante un script hecho en php que no

consigo que funcione.

De todos modos pongo a continuacion el script que tengo pero para mysql, no para sql server que es lo que necesito , por si alguien sabria que hacerle por que yo ya no se como seguir , grancias de antemano.


Código PHP:
Ver original
  1. function exportar($link, $tablas) // $tablas = '*'
  2.  
  3.                 {  
  4.                     //Declaro las variables necesarias
  5.                    
  6.                     $tabla = '';
  7.                    
  8.                     $salida = '';
  9.                
  10.                
  11.                
  12.                     //Consigo las tablas necesarias
  13.                    
  14.                     if($tablas == '*')
  15.                    
  16.                         {
  17.                             $tablas = array();
  18.                            
  19.                             $resultado = $link->query("SHOW TABLES");
  20.                            
  21.                            
  22.                            
  23.                             while($fila = $resultado->fetch_row())
  24.                            
  25.                                 {
  26.                                     $tablas[] = $fila[0];
  27.                                 }
  28.                         }
  29.                    
  30.                         else
  31.                        
  32.                         {
  33.                             $tablas = is_array($tablas)?$tablas:explode(',',$tablas);
  34.                         }
  35.                
  36.                
  37.                
  38.                     //Hago un recorrido
  39.                    
  40.                     foreach($tablas as $tabla)
  41.                    
  42.                         {
  43.                             $resultado = $link->query("SELECT * FROM " . $tabla);
  44.                            
  45.                             $numColumnas = $resultado->field_count;
  46.                    
  47.                             //$salida .= "DROP TABLE " . $tabla;
  48.                    
  49.                             $resultadoDos = $link->query("SHOW CREATE TABLE " . $tabla);
  50.                            
  51.                             $filaDos = $resultadoDos->fetch_row();
  52.                    
  53.                             $salida .= "\n\n".$filaDos[1].";\n\n";
  54.                    
  55.                    
  56.                    
  57.                             for($i = 0; $i < $numColumnas; $i++)
  58.                            
  59.                                 {
  60.                                     while($fila = $resultado->fetch_row())
  61.                                    
  62.                                         {
  63.                                             $salida .= "INSERT INTO " . $tabla . " VALUES(";
  64.                                            
  65.                                             for($j=0; $j < $numColumnas; $j++)
  66.                                            
  67.                                                 {
  68.                                                     $fila[$j] = addslashes($fila[$j]);
  69.                                                    
  70.                                                     //$fila[$j] = ereg_replace("\n","\\n",$fila[$j]);
  71.                                                     $fila[$j] = preg_replace("/\n/","\\n",$fila[$j]);
  72.  
  73.                                                     if (isset($fila[$j]))
  74.                                                    
  75.                                                         {
  76.                                                             $salida .= '"'.$fila[$j].'"' ;
  77.                                                         }
  78.                                                        
  79.                                                         else
  80.                                                        
  81.                                                         {
  82.                                                             $salida .= '""';
  83.                                                         }
  84.                                                        
  85.                                                                                            
  86.                                                    
  87.                                                     if ($j < ($numColumnas-1))
  88.                                                    
  89.                                                         {
  90.                                                             $salida.= ',';
  91.                                                         }
  92.                                                 }
  93.                                                
  94.                                                
  95.                                                
  96.                                                 $salida .= ");\n";
  97.                                         }
  98.                                 }
  99.                        
  100.                        
  101.                        
  102.                                 $salida .= "\n\n\n";
  103.                         }
  104.                
  105.                
  106.                
  107.                     //Guardo el archivo
  108.                    
  109.                     $referencia = fopen('historial/tabla-backup-'.time().'.sql','w+');
  110.                    
  111.                     fwrite($referencia,$salida);
  112.                    
  113.                     fclose($referencia);
  114.  
  115.                
  116.                 }