Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

No encuentra TXT para carga en Table MYSQL

Estas en el tema de No encuentra TXT para carga en Table MYSQL en el foro de Bases de Datos General en Foros del Web. La verificacion de la tabla la realiza, la crea cuando existe. Pero cuando va a cargar los datos desde un archivo TXT, da el siguiente ...
  #1 (permalink)  
Antiguo 01/12/2009, 08:31
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
No encuentra TXT para carga en Table MYSQL

La verificacion de la tabla la realiza, la crea cuando existe.
Pero cuando va a cargar los datos desde un archivo TXT, da el siguiente error:

File '/home/servweb/EXIPRO.TXT' not found (Errcode: 13)-e


¿Cuales serián los posibles soluciones para este tipo de errores?

Código PHP:
<?                                                                            
  
// Carga de Maestro de Productos a Base de Datos Indra                       
 
include("/home/servweb/php_scripts/dmz_config.php");                         
 
$tabla='exipro';                                                             
 
$textfile="/home/servweb/EXIPRO.TXT";                                        
 
$db=mysql_connect($conectar$usuariobd$clave) or die(mysql_error());      
 
mysql_select_db($base) or die(mysql_error());                                
 
$sql "DROP TABLE IF EXISTS $tabla";                                        
if(
mysql_query$sql$db ))                                                 
{                                                                            
     print 
"\nLa tabla $tabla, existe. Se procedera a Eliminarla\n";           
}                                                                            
print 
"\nLa tabla $tabla se creara.\n";                                    
$query "CREATE TABLE $tabla (                                    
        RUBRO_P INT(2) NOT NULL,                                    
        SUBRUB_P INT(2) NOT NULL,                                   
        CODPRO_P VARCHAR(15) NOT NULL,                              
        NOMBRE_P VARCHAR(40) NOT NULL,                              
        TIPPRO_P CHAR(1) NOT NULL,                                  
        PREVUS_P DECIMAL(7,2) NOT NULL DEFAULT 0.00,                
        GENNAB_P VARCHAR(4) NOT NULL DEFAULT '',                    
        UNIDAD_P VARCHAR(2) NOT NULL DEFAULT '',                    
        UNIDADB_P VARCHAR(2) DEFAULT NULL,                          
        UNIUNIB_P DECIMAL(4,1) NOT NULL DEFAULT 0.0,                
        SALDO_P SMALLINT(6) DEFAULT NULL,                           
        SALDOV_P SMALLINT(10) DEFAULT NULL,                         
        CRITICO_P INT(4) DEFAULT NULL,                              
        PRECOS_P DECIMAL(10,5) NOT NULL DEFAULT 0.00000,            
        CODWEB_P  INT(1)  NOT NULL,                   
        PRIMARY KEY(CODPRO_P),                        
        KEY (NOMBRE_P)) ENGINE = MyISAM"

if(
mysql_query($query$db))                                                  
{                                                                             
    
//query para cargar txt                                                     
    
$query="LOAD DATA INFILE '$textfile' INTO TABLE $tabla                      
            FIELDS TERMINATED BY ';'                                            
            ENCLOSED BY '\t'                                                    
            LINES TERMINATED BY '\n'"
;                                          
    if(
mysql_query($query,$db) or die(mysql_error()))                           
    {                                                                           
      print 
"\nLos datos se han cargado con exito en la tabla $tabla\n";        
    }                                                                           
    else                                                                        
    {                                                                           
      print 
"\nNo se han podido cargar los datos del archivo $textfile en la tab
la $tabla\n"
;                                                                   
      exit();                                                                   
    }                                                                           
}                                                                             
else                                                                          
{                                                                             
    print 
"\nNo se ha podido crear la tabla $tabla\n";                        
    exit(); 

<?
  #2 (permalink)  
Antiguo 01/12/2009, 08:46
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: No encuentra TXT para carga en Table MYSQL

Cita:
La verificacion de la tabla la realiza, la crea cuando existe.
Pero cuando va a cargar los datos desde un archivo TXT, da el siguiente error:

File '/home/servweb/EXIPRO.TXT' not found (Errcode: 13)-e


¿Cuales serián los posibles soluciones para este tipo de errores?
Eso no es un problema de codificación. El problema es que el archivo solicitado (EXIPRO.TXT), no existe en el sitio indicado... La única solución es poner el archivo donde se supone que el sistema va a buscarlo.
La pregunta es si este archivo está en el servidor de la base o en una máquina cliente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/12/2009, 09:02
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: No encuentra TXT para carga en Table MYSQL

el archivo EXIPRO.TXT, existe en el path indicado (/home/servweb).
y el archivo esta en el servidor de la base.

¿Que me podrias comentar al respecto?
  #4 (permalink)  
Antiguo 01/12/2009, 09:18
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: No encuentra TXT para carga en Table MYSQL

El sistema no miente:
Cita:
File '/home/servweb/EXIPRO.TXT' not found (Errcode: 13)-e
O el archivo no está donde debe, o la ruta está mal escrita.

¿Servidor local o servidor remoto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/12/2009, 09:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: No encuentra TXT para carga en Table MYSQL

insisto:
cuando hago un echo a $query, obtengo la ruta desde donde busca el archivo EXIPRO.TXT, y efectivamente es la ruta donde se encuentra.
Servidro Local.
  #6 (permalink)  
Antiguo 01/12/2009, 13:55
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: No encuentra TXT para carga en Table MYSQL

He leido sobre el tema y me deja claro que el problema no esta en que el archivo EXIPRO.TXT no se encuentre en el directorio correspondiente.
realice la carga de diferentes formas: via script, comado mysql y con Phpmyadmin.
y en todas me dio el mismo error:
#29 file '/home/servweb/EXIPRO.TXT' not found (Errcode 13)

y encontre esto, pero la realidad de las cosasno entendi demasiado, aun tengo el problema y necesito resolverlo, dede ya se agradece cualquier informacion.


http://bugs.launchpad.net/ubuntu/+so....0/+bug/244406
  #7 (permalink)  
Antiguo 01/12/2009, 15:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: No encuentra TXT para carga en Table MYSQL

Aunque resulte irrisorio la solucion estaba en el codigo php
Cita:
$query="LOAD DATA INFILE '$textfile' INTO TABLE $tabla FIELDS TERMINATED BY ';' ENCLOSED BY '\t' LINES TERMINATED BY '\n'";
por esta linea

Cita:
$query="LOAD DATA LOCAL INFILE '$textfile' INTO TABLE $tabla FIELDS TERMINATED BY ';' ENCLOSED BY '\t' LINES TERMINATED BY '\n'";
¿No entiendo, cual es la diferencia?
  #8 (permalink)  
Antiguo 01/12/2009, 15:30
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: No encuentra TXT para carga en Table MYSQL

LOAD DATA LOCAL se usa cuando el archivo de datos no se encuentra en el servidor donde está en la base de datos (por eso te lo pregunté en su momento: http://www.forosdelweb.com/f21/no-en...8/#post3188124), sino en una computadora conectada a él. La cláusula LOCAL le indica al server de MySQL precisamente, dónde buscar archivo... ya que la ruta es relativa al usuario.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 00:54.