Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Php subir fychero y bolcar en BBDD

Estas en el tema de Php subir fychero y bolcar en BBDD en el foro de PHP en Foros del Web. Buenas, tengo un problem al bolcar los datos de un fichero.csv a la bbdd, en local me funciona bien, al subirlo al hosting ya no ...
  #1 (permalink)  
Antiguo 08/02/2013, 03:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 34
Antigüedad: 16 años, 1 mes
Puntos: 0
Php subir fychero y bolcar en BBDD

Buenas, tengo un problem al bolcar los datos de un fichero.csv a la bbdd, en local me funciona bien, al subirlo al hosting ya no funciona...

Código PHP:
Ver original
  1. <?php
  2. $status = "";
  3. extract ($_POST, EXTR_PREFIX_ALL, "pst");
  4.     if ($_POST["subir"] == "upload") {
  5.         // obtenemos los datos del archivo
  6.         $tamano = $_FILES["f_lecturas"]['size'];
  7.         $tipo = $_FILES["f_lecturas"]['type'];
  8.         $archivo = $_FILES["f_lecturas"]['name'];
  9.                
  10.         if ($archivo != "") {
  11.             // guardamos el archivo a la carpeta files
  12.             $destino =  "".$archivo;
  13.             if (copy($_FILES['f_lecturas']['tmp_name'],$destino)) {
  14.                 $status = "Archivo subido: <b>".$archivo."</b>";
  15.             } else {
  16.                 $status = "Error al subir el archivo";
  17.             }
  18.         } else {
  19.             $status = "Error al subir archivo";
  20.         }
  21.     }
  22.     echo $status;
  23.  
  24. define("HOST", "localhost");
  25. define("USER", "user");
  26. define("PASSWORD", "pass");  
  27. define("DATABASE", "nombre");
  28.  
  29. $row = 1;
  30. $fp = fopen ("lectura.csv","r");
  31. while ($data = fgetcsv ($fp, 1000, ";"))
  32. {
  33. $num = count ($data);
  34. print " <br>";
  35. $row++;
  36. //echo "$row- ".$data[0].$data[1].$data[2].$data[3];
  37.  
  38. $conexion = new mysqli(HOST, USER, PASSWORD, DATABASE);
  39. $insertar="INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('$data[3]','$pst_flec_ini','$pst_flec_fin','$data[2]','$data[1]','$data[0]')";
  40. $conexion->query($insertar);
  41.  
  42. }
  43. fclose ($fp);
  44. //header("location:../index.php");
  45. ?>

Sube el fichero al servidor, pero no inserta en la bbdd
  #2 (permalink)  
Antiguo 08/02/2013, 03:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Php subir fychero y bolcar en BBDD

Cuando ingresas elementos de array en una cadena, debe estar entre llaves:

Código PHP:
Ver original
  1. // Mal:
  2. $insertar = " ... VALUES ('$data[3]' ... ";
  3.  
  4. // Bien:
  5. $insertar = " ... VALUES ('{$data[3]}' ... ";

Por otra parte, tampoco estás escapando los datos para incluirlos en la consulta: http://php.net/manual/es/mysqli.real-escape-string.php

Finalmente, antes de insertar, imprime cada consulta para ver si está armada correctamente:
echo $insertar;
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 08/02/2013, 04:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 34
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Php subir fychero y bolcar en BBDD

Gracias por contestar,

Sigue sin funcionar, y las salidas que optengo usando llaves {} son las mismas que sin usarlas,

echo de $insertar

Código SQL:
Ver original
  1. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('2748328','','','994','988','187-B')
  2. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('01-531855','','','1504','1485','184')
  3. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('01-531864','','','2607','2581','185')
  4. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('1530560','','','4148','4144','185-B')
  5. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('8709711','','','338','329','186')
  6. INSERT INTO lecturas (lec_contador,flec_ini,flec_fin,lec_act,lec_ant,lec_poliza) VALUES ('1530546','','','776','766','163')

Si estas las meto directamente en SQL las inserta bien, por algun motivo desde el upload.php no inserta....
  #4 (permalink)  
Antiguo 08/02/2013, 12:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Php subir fychero y bolcar en BBDD

El tema está marcado como solucionado, lograste insertar después de tu último mensaje?

En todo caso, te sugiero:
Código PHP:
Ver original
  1. // Con esto podrías ver si hay un error en la consulta
  2. $conexion->query($insertar) or die($conexion->error);
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: bbdd, mysql
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 18:52.