Foros del Web » Programando para Internet » PHP »

Problemas al copiar de csv a mysql

Estas en el tema de Problemas al copiar de csv a mysql en el foro de PHP en Foros del Web. Tengo el siguiente código Código PHP: $fp  =  fopen  ( 'trabajadores.csv' ,  'r' );         while ( $data  =  fgetcsv  ( $fp , 1000 , '^' )){ ...
  #1 (permalink)  
Antiguo 19/06/2009, 04:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años
Puntos: 4
Problemas al copiar de csv a mysql

Tengo el siguiente código
Código PHP:


$fp 
fopen ('trabajadores.csv''r');
        while (
$data fgetcsv ($fp,1000,'^')){
        
$insertar="INSERT INTO trabajador(id_trabajador,lastName,firstName,address,phone,zipCode,city,state,nif,birthdayAsString,ssNumber)VALUES ($data[0],'$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]');";
        
mysql_query($insertar$link) or die($insertar);
        echo 
"$insertar ok <br />";
        }
        
fclose($fp); 
Y siempre me hace igual me copia hasta la línea 512 (512 registros) de forma correcta.
El problema es que hay 9800, cuál puede ser el fallo, incluso incrementé el final de línea a 2000, pero nada.
A ver si podéis ayudarme.
  #2 (permalink)  
Antiguo 19/06/2009, 06:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problemas al copiar de csv a mysql

Parece que en la linea 590 debe haber un separado extra que es igual a ^ verifica que no haya sido eso. Lo que te sugiero es que antes de añadir a la base de datos hagas una tabla y verifica por la linea 590 cual es el problema. Acuerdate que si en la base de datos declaras que un campo que es INT o VARCHAR etc etc y le declaras otra cosa que no es, te va a salir un error. Para que veas el error especifico en el or die() escribe

or die(mysql_error())
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 13:36.