yanguma escribió: > 1, cargo un plano, que en la primera fila contiene lo siguientes datos > $linea=1|1|11|41|510102|1000|1 > los cuales corresponde a los campos (c1, c2, c3, c4, c5, c6, c7) de la > tabla_name > > 2. como la funcion pg_copy_from dice que los parametros son ($conexion, > 'tabla_name', $row) donde $row es un array, entonces para convertir la fila > del paso 1 a un array la paso por la funcion: > $row=explode("|",$linea); > > quedando un array de la siguente forma > Array ( [0] => 1 [1] => 1 [2] => 11 [3] => 41 [4] => 510102 [5] => 1000 [6] > => 1 )
El error está en hacer el explode. Más bien deberías pasar la línea tal como está sin hacer explode, o sea pg_copy_from($conn, 'tabla_name', $linea, '|'); Supongo que tienes que hacer un array con un elemento por linea, o sea deberia verse algo así: Array( [0] => '1|1|11|41|510102|1000|1', [1] => '2|2|22|42|510102|2000|2', ... ); un elemento de array por línea del archivo. El manual no dice (son tan malos los manuales de PHP, me llegan a dar terror) si puedes invocar más de una vez la función para una misma orden COPY. -- Alvaro Herrera Vendo parcela en Valdivia: http://alvherre.cl/caboblanco "The Postgresql hackers have what I call a "NASA space shot" mentality. Quite refreshing in a world of "weekend drag racer" developers." (Scott Marlowe) -- TIP 7: no olvides aumentar la configuración del "free space map"