Foros del Web » Programando para Internet » PHP »

Insertar en Mysql desde txt.

Estas en el tema de Insertar en Mysql desde txt. en el foro de PHP en Foros del Web. Buenas.... dudas, bastantes: Estoy empezando y me quiero ir tirando a la piscina probando cosas y estoy cogiendo alguna cosa del trabajo que me puede ...
  #1 (permalink)  
Antiguo 30/01/2014, 10:49
 
Fecha de Ingreso: enero-2014
Ubicación: alicante
Mensajes: 28
Antigüedad: 10 años, 1 mes
Puntos: 1
Insertar en Mysql desde txt.

Buenas.... dudas, bastantes:

Estoy empezando y me quiero ir tirando a la piscina probando cosas y estoy cogiendo alguna cosa del trabajo que me puede ir bien. Ahora mismo estoy atascado con lo siguiente:

Tengo un archivo en TXT con campos separados por tabulación, cuya primera linea no me interesa, aunque si no queda remedio, luego la puedo borrar ;D.
Necesito insertarlo en una tabla MYSQL. Por ahora la tabla es todita de VARCHAR, para testear y no tener problemas.

Intento llamar al archivo y en pantalla parece todo correcto, el echo funciona y me muestra todos los datos del TXT separadidos y con lógica. Pero nada de insertarmelos en mi db.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

¿Por?¿?¿?¿ Podéis darle un vistazo.

Mil y una thanks!!!


Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=UTF-8');
  3.  
  4.  
  5. $con = mysql_connect('localhost', 'root', '') or die("problema al conectar server"."<br>".mysql_error());
  6. mysql_select_db('playoutlogs',$con)or die("Problema al conectar con bd"."<br>".mysql_error());
  7.  
  8. echo "TEST ejecutandose";
  9.  
  10.  
  11. $filas=file('Playoutlogs_20120101.txt');
  12. foreach($filas as $value){list($TYPE, $NOMBRE, $fecha, $tiempofinal, $duracion, $estado, $codigo, $descripcion, $salida, $type2, $vtrmastertape, $vtr_tcin, $vtr_tcount, $vtr_id, $recpath, $crosspoints, $fuente, $destinacion, $cgids) = explode("\t", $value);
  13.  
  14.  
  15. echo 'TYPE: '.$TYPE.'<br/>';
  16. echo 'NOMBRE: '.$NOMBRE.'<br/>';
  17. echo 'fecha: '.$fecha.'<br/>';
  18. echo 'tiempofinal: '.$tiempofinal.'<br/>';
  19. echo 'duracion: '.$duracion.'<br/>';
  20. echo 'estado: '.$estado.'<br/>';
  21. echo 'codigo: '.$codigo.'<br/>';
  22. echo 'descripcion: '.$descripcion.'<br/>';
  23. echo 'salida: '.$salida.'<br/>';
  24. echo 'type2: '.$type2.'<br/>';
  25. echo 'vtrmastertape: '.$vtrmastertape.'<br/>';
  26. echo 'vtr_tcin: '.$vtr_tcin.'<br/>';
  27. echo 'vtr_tcount: '.$vtr_tcount.'<br/>';
  28. echo 'vtr_id: '.$vtr_id.'<br/>';
  29. echo 'recpath: '.$recpath.'<br/>';
  30. echo 'crosspoints: '.$crosspoints.'<br/>';
  31. echo 'fuente: '.$fuente.'<br/>';
  32. echo 'destinacion: '.$destinacion.'<br/>';
  33. echo 'cgids: '.$cgids.'<br/>';
  34.  
  35.  
  36. $insert = "INSERT INTO `playoutlogs`(`TYPE`, `NOMBRE`, `fecha`, `tiempofinal`, `duracion`, `estado`, `codigo`, `descripcion`, `salida`, `type2`, `vtrmastertape`, `vtr_tcin`, `vtr_tcount`, `vtr_id`, `recpath`, `crosspoints`, `fuente`, `destinacion`, `cgids`, `INT`) VALUES ($TYPE, $NOMBRE, $fecha, $tiempofinal, $duracion, $estado, $codigo, $descripcion, $salida, $type2, $vtrmastertape, $vtr_tcin, $vtr_tcount, $vtr_id, $recpath, $crosspoints, $fuente, $destinacion, $cgids)";
  37. $resultado=mysql_query($insert, $con)or die("Problema al hacer el INSERT"."<br>".mysql_error());
  38.  
  39. }
  40.  ?>


Esta es la base de datos:

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `playoutlogs` (
  2.  
  3.   `TYPE` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  4.   `NOMBRE` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  5.   `fecha` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  6.   `tiempofinal` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  7.   `duracion` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  8.   `estado` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  9.   `codigo` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  10.   `descripcion` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  11.   `salida` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  12.   `type2` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  13.   `vtrmastertape` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  14.   `vtr_tcin` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  15.   `vtr_tcount` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  16.   `vtr_id` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  17.   `recpath` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  18.   `crosspoints` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  19.   `fuente` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  20.   `destinacion` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  21.   `cgids` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  22.   `INT` int(11) NOT NULL AUTO_INCREMENT,
  23.   PRIMARY KEY (`INT`)
  24. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=0001 ;



En cuanto al TXT:

Código XML:
Ver original
  1. Type    StartTime   EndTime Duration    Status  Code    Description ExitType    VTR-MasterTape  VTR-TCin    VTR-TCout   VTR-Id  RecPath Crosspoints Source  Destination CG-Id  
  2. VECTORBOX923    DISK    01-01-2012  00:31:46    00:31:51    00:00:05:20 Ok  bumperitv2  D:\Catalogue\Batchfiles\bumperitv2.BXX                          [Mixer;CH 1>PGM] [Network;VECTORBOX>1_PROGRAMA]    
  3. VECTORBOX923    DISK    01-01-2012  00:31:51    00:32:25    00:00:33:04 Ok  2011_0320_16_9_Guía_Gastronómica_23 D:\Catalogue\Batchfiles\2011_0320_16_9_Guía_Gastronómica_23.BXX                         [Mixer;CH 1>PGM] [Network;VECTORBOX>1_PROGRAMA]
  #2 (permalink)  
Antiguo 30/01/2014, 10:57
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Insertar en Mysql desde txt.

Buenas,

¿Y si haces un echo $insert sale bien? :)
PD: Si sale bien, puedes probar a copiar la consulta en phpmyadmin o heidisql, o cualquier programa para manejar bbdd :)

Quizás así encuentres el error! ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 10/02/2014, 04:37
 
Fecha de Ingreso: enero-2014
Ubicación: alicante
Mensajes: 28
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: Insertar en Mysql desde txt.

Primero Gracias Eleazan.

Si gracias al echo $insert me he dado cuenta de lo estupido de mi insert.

Si lo dejamos así no tengo problemas, claro no es lo mismo ' que ´ aunque lo parezcan :D.

INSERT INTO playoutlogs (TYPE, NOMBRE, fecha, tiempofinal, duracion, estado, codigo, descripcion, salida, type2, vtrmastertape, vtr_tcin, vtr_tcount, vtr_id, recpath, crosspoints, fuente, destinacion, cgids) VALUES ('$TYPE','$NOMBRE','$fecha','$tiempofinal','$durac ion','$estado','$codigo','$descripcion','$salida', '$type2','$vtrmastertape','$vtr_tcin','$vtr_tcount ','$vtr_id','$recpath','$crosspoints','$fuente','$ destinacion','$cgids');



GRACIAS!!!!!

Etiquetas: fecha, html, mysql, select, sql, 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 10:25.