Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/06/2018, 05:53
mensajeescrito
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: conectar a tabla sql server de nombre con caracteres especiales

Libras, solucionado ya me conecta a la base de datos por fin!!!
He salvado el primer obstaculo que era conectarme a la base de datos y
en concreto a una tabla de caracteres especiales.

Ahora solo me falta la guinda del pastel que para no variar se me resiste.
A ver si me pudieran ayudar con esta ultima parte.

Se trata de exportar la tabla en cuestion a un directorio en formato .sql
Para ello tengo hecho esto de codigo, gracias de antemano.

Código PHP:
Ver original
  1. $conexArrayBBDD = array (
  2.  
  3.         "UID" => "UsuarioNombre",
  4.  
  5.         "PWD" => "1234567",
  6.  
  7.         "Database" => "empresa",
  8.  
  9.     );
  10.  
  11.  
  12.     $conexBBDD = sqlsrv_connect('000.000.000', $conexArrayBBDD);
  13.  
  14.     if ($conexBBDD)
  15.  
  16.         {
  17.             if(($resultado = sqlsrv_query($conexBBDD,"SELECT * FROM [dbo].[Hispamicro$Tarifa Proveedor]")) !== false)
  18.  
  19.                 {
  20.                     //Declaro las variables necesarias
  21.                    
  22.                     $tabla = '';
  23.                    
  24.                     $salida = '';
  25.                
  26.                
  27.                
  28.                     //Consigo las tablas necesarias
  29.                    
  30.                     if($tablas == '*')
  31.                    
  32.                         {
  33.                             $tablas = array();
  34.                            
  35.                             $resultado = $conexBBDD->sqlsrv_query("SHOW TABLES");
  36.                            
  37.                            
  38.                            
  39.                             while($fila = $resultado->sqlsrv_fetch_row())
  40.                            
  41.                                 {
  42.                                     $tablas[] = $fila[0];
  43.                                 }
  44.                         }
  45.                    
  46.                         else
  47.                        
  48.                         {
  49.                             $tablas = is_array($tablas)?$tablas:explode(',',$tablas);
  50.                         }
  51.                
  52.                
  53.                
  54.                     //Hago un recorrido
  55.                    
  56.                     foreach($tablas as $tabla)
  57.                    
  58.                         {
  59.                             $resultado = $conexBBDD->sqlsrv_query("SELECT * FROM " . $tabla);
  60.                            
  61.                             $numColumnas = $resultado->field_count;
  62.                    
  63.                             //$salida .= "DROP TABLE " . $tabla;
  64.                    
  65.                             $resultadoDos = $conexBBDD->sqlsrv_query("SHOW CREATE TABLE " . $tabla);
  66.                            
  67.                             $filaDos = $resultadoDos->sqlsrv_fetch_row();
  68.                    
  69.                             $salida .= "\n\n".$filaDos[1].";\n\n";
  70.                    
  71.                    
  72.                    
  73.                             for($i = 0; $i < $numColumnas; $i++)
  74.                            
  75.                                 {
  76.                                     while($fila = $resultado->sqlsrv_fetch_row())
  77.                                    
  78.                                         {
  79.                                             $salida .= "INSERT INTO " . $tabla . " VALUES(";
  80.                                            
  81.                                             for($j=0; $j < $numColumnas; $j++)
  82.                                            
  83.                                                 {
  84.                                                     $fila[$j] = addslashes($fila[$j]);
  85.                                                    
  86.                                                     //$fila[$j] = ereg_replace("\n","\\n",$fila[$j]);
  87.                                                     $fila[$j] = preg_replace("/\n/","\\n",$fila[$j]);
  88.  
  89.                                                     if (isset($fila[$j]))
  90.                                                    
  91.                                                         {
  92.                                                             $salida .= '"'.$fila[$j].'"' ;
  93.                                                         }
  94.                                                        
  95.                                                         else
  96.                                                        
  97.                                                         {
  98.                                                             $salida .= '""';
  99.                                                         }
  100.                                                        
  101.                                                                                            
  102.                                                    
  103.                                                     if ($j < ($numColumnas-1))
  104.                                                    
  105.                                                         {
  106.                                                             $salida.= ',';
  107.                                                         }
  108.                                                 }
  109.                                                
  110.                                                
  111.                                                
  112.                                                 $salida .= ");\n";
  113.                                         }
  114.                                 }
  115.                        
  116.                        
  117.                        
  118.                                 $salida .= "\n\n\n";
  119.                         }
  120.                
  121.                
  122.                
  123.                     //Guardo el archivo
  124.                    
  125.                     $referencia = fopen('historial/tabla-backup-'.time().'.sql','w+');
  126.                    
  127.                     fwrite($referencia,$salida);
  128.                    
  129.                     fclose($referencia);
  130.  
  131.  
  132.  
  133.                               } //Fin de If
  134.  
  135.  
  136.  
  137.     }//Fin de If
  138.  
  139.     else
  140.  
  141.     {
  142.         die(print_r(sqlsrv_errors(), true));
  143.     }