IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Erreur "Invalid column count in CSV input on line 1." quand j'importe un fichiers CSV dans ma bdd


Sujet :

MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut Erreur "Invalid column count in CSV input on line 1." quand j'importe un fichiers CSV dans ma bdd
    Bonjour,

    J'ai besoin d'insérer des données dans ma bdd, via phpmyadmin.
    Pour ne pas faire d'erreur, j'ai fait un export .csv des données déjà existantes dans ma table qui contenait 10 lignes.

    Pour faire un essai, je suis donc reparti du fichier .csv généré et j'ai supprimé les 10 lignes et j'en ai insérer une seule pour faire une test.

    J'ai le message d'erreur suivant: Invalid column count in CSV input on line 1.

    Pour info, je n'ai aucun titre de colonne.

    Merci.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Si je traduis ça voudrait dire que mon nombre de colonnes est différent entre mon nouveau fichier .csv et la structure de la table, or ce n'est pas le cas car je suis reparti du fichier .csv que j'ai exporté.
    J'ai donc 7 colonnes dans mon fichier comme la structure de la base.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    On peut avoir un exemple de données et la structure de la table ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut guillaume7684.

    Si tu veux faire un export avec phpmyadmin, pourquoi veux-tu mettre le fichier au format csv ? Y-a-t-il une raison précise à ce choix ?

    La raison peut venir du caractère servant de séparateur. Si tu as l'espace comme séparateur, il suffit d'avoir une chaine de caractères contenant un espace pour obtenir une colonne de plus.

    Il faut configurer la procédure de chargement comme dans cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    LOAD DATA LOCAL INFILE 'Charge.txt' INTO TABLE `Cities`
        CHARACTER SET latin1
    	FIELDS TERMINATED BY ','
    	LINES  TERMINATED BY '\n'
        IGNORE 0 LINES
        (@F1, @F2, @F3, @F4, Population, Latitude, Longitude)
    	set Country    = trim(@F1),
    	    City       = trim(@F2), 
    	    AccentCity = trim(@F3),
    	    Region     = trim(@F4);
    Ici, une ligne se termine par le caractère 'carriage return' noté en décimal 13 et en hexadécimal 'C' ou encore noté '/n' signifiant 'new line'.
    Le séparateur de champs est la virgule.
    Ce qui signifie que ce caractère ne peut pas être présent dans un champs.

    Donc si c'est juste faire un export et un import, choisit plutôt le format 'sql'. Cela posera moins de problème.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    On peut avoir un exemple de données et la structure de la table ?
    Voici une copie d'écran de la structure de la BDD et de mon fichier csv avec une ligne (pour test) à insérer dans la table.

    Nom : 2015-03-18_21h03_25.jpg
Affichages : 1292
Taille : 521,9 Ko

    Nom : 2015-03-18_21h09_00.jpg
Affichages : 1189
Taille : 133,9 Ko

    Merci.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Je ne vois rien d'anormal dans ces données qui empêche de les injecter dans la table.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut guillaume7684.

    Ce n'est pas un problème de table mais bien de chargement.
    As-tu correctement renseigné les paramètres pour le type CSV dans l'export de phpmyadmin ?

    Donne nous un extrait de ton fichier CSV ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut guillaume7684.

    Ce n'est pas un problème de table mais bien de chargement.
    As-tu correctement renseigné les paramètres pour le type CSV dans l'export de phpmyadmin ?

    Donne nous un extrait de ton fichier CSV ?

    @+
    Bonjour,

    Voici mon fichier .csv généré par un export de ma table.
    http://we.tl/5YSFXO2e7b

    Merci d'essayer de m'aider.

  9. #9
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut Guillaume7684.

    J'ai recréé la table chez moi et je l'ai importer via phpmyadmin, sans rien changer au paramétrage.
    Je n'ai eu aucun problème pour le chargement.

    Sinon, dans ton jeu d'essai, il manque la première ligne.
    Pourquoi mettre VARCHAR(150) ou VARCHAR(32) ? Mets le maximum autorisé, donc VARCHAR(255).

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut Guillaume7684.

    J'ai recréé la table chez moi et je l'ai importer via phpmyadmin, sans rien changer au paramétrage.
    Je n'ai eu aucun problème pour le chargement.

    Sinon, dans ton jeu d'essai, il manque la première ligne.
    Pourquoi mettre VARCHAR(150) ou VARCHAR(32) ? Mets le maximum autorisé, donc VARCHAR(255).

    @+
    Merci pour ton aide, mais je n'y arrive toujours pas.
    Voici mes paramètres d'import et le message d'erreur.

    Nom : 2015-03-20_20h11_17.jpg
Affichages : 1274
Taille : 334,1 Ko

    Nom : 2015-03-20_20h11_47.jpg
Affichages : 1127
Taille : 111,6 Ko

  11. #11
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Bonjour guillaume7684.

    Désolé guillaume7684, mais je n'ai aucune différence avec ton paramétrage.
    Si le fichier csv que tu m'as envoyé est celui qui pose problème, je ne voie pas où se trouve le problème.
    Il y a le même nombre de colonnes, les champs alphanumériques sont bien entre guillemets, le séparateur de champs est bien la virgule.

    Juste une question qui a son importance. Ton fichier, c'est bien un fichier pour windows. Si tu le charges sur linux (ou vice-versa), il se peut que la fin de ligne ne soit pas correctement interprété. Vérifie que tu as bien pour windows un "CR" + "LF" comme fin de ligne, et un "LF" pour linux.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Bonjour guillaume7684.

    Désolé guillaume7684, mais je n'ai aucune différence avec ton paramétrage.
    Si le fichier csv que tu m'as envoyé est celui qui pose problème, je ne voie pas où se trouve le problème.
    Il y a le même nombre de colonnes, les champs alphanumériques sont bien entre guillemets, le séparateur de champs est bien la virgule.

    Juste une question qui a son importance. Ton fichier, c'est bien un fichier pour windows. Si tu le charges sur linux (ou vice-versa), il se peut que la fin de ligne ne soit pas correctement interprété. Vérifie que tu as bien pour windows un "CR" + "LF" comme fin de ligne, et un "LF" pour linux.

    @+
    Bonsoir,

    Merci pour ton acharnement sur mon problème !!
    Peux-tu essayer de l'importer 2 fois car je me dis que c'est peut être ça le problème, vu que chez moi la table existe déjà?

  13. #13
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut Guillaume7684.

    Qu'est-ce qui vous empêche de faire le test chez vous ?

    Vous créez la même table en changeant son nom et vous effectuez le chargement.
    Normalement, si la table a déjà un contenu, cela ne devrait pas fonctionner.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 27
    Dernier message: 21/04/2014, 16h05
  2. Réponses: 4
    Dernier message: 27/07/2006, 23h25
  3. Importer un fichier CSV dans un clientdataset ?
    Par mls dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/04/2005, 13h35
  4. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 20h14
  5. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo