Grácas por responder, pero no era eso... era algo bastante más absurdo jejeej
Al final ha sido algo tan simple como esto:
Código PHP:
Ver originalmysql_query("LOAD DATA LOCAL INFILE 'dusa.txt' INTO TABLE productes FIELDS TERMINATED BY '|'
");
Ese LOCAL es el que hacia que no lo pillara. He quitado los campos y simplemente he dejado que los huecos vacios (que aun no entiendo pa que me dan un archivo así) los llene en unos campos en la base de datos, que no sirven para nada mas que para ocupar espacio jejej.
Supongo que el LOCAL le indica que el archivo está en la misma carpeta que el script de php.