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

Administration MySQL Discussion :

Pb import CSV en PHP ou MySQL


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut Pb import CSV en PHP ou MySQL
    Bonjour,

    Je rencontre un pb lors de l'importation de CSV dans ma table.
    Lorsque j'exécute la requête suivante directement dans phpmysql, le fichier est bien importé mais dès que je le fait en php alors là j'ai un message d'erreur sur la requête.
    Pourriez-vous me dire où se situerait cette erreur svp ?

    Requête PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
      $RequeteInjectionGestionSite = "
    LOAD DATA INFILE 'D:\\xampp\\htdocs\\MonSITE\\UpLoad\\MonFichier.csv'
         INTO TABLE `t_GestionSites`
         FIELDS TERMINATED BY ';'
         ENCLOSED BY '\\'
         ESCAPED BY '\\'
         LINES TERMINATED BY '\\n'
         IGNORE 11 LINES;
      ";
    ?>

    Requête MySQL avec phpMyAdmin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    LOAD DATA INFILE 'D:\\xampp\\htdocs\\MonSite\\MonFichier.csv
         INTO TABLE `t_GestionSites`
         FIELDS TERMINATED BY ';'
         ENCLOSED BY '\\'
         ESCAPED BY '\\'
         LINES TERMINATED BY '\n'
         IGNORE 11 LINES;

    Monfichier.csv contient un champs pouvant contenir des "\" comme "blabla\bloblo\bli\blu\blu\"
    Tous les champs sont séparés par des ";"

    De plus, je rencontre aussi un pb avec le dernier champs, il semblerait qu'il contienne un caractère caché mais je ne sais pas quoi.

    Merci pour votre aide.
    Là je sèche complètement.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Par défaut
    Ce serait plus facile si tu nous donnais le message d'erreur que tu obtiens lorsque tu exécutes ta requêtes avec PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    ...
    ...
    ...
      $RequeteInjectionGestionSite = "
    LOAD DATA INFILE 'D:\\xampp\\htdocs\\MonSite\\UpLoad\\MonFichier.csv'
         INTO TABLE `t_GestionSites`
         FIELDS TERMINATED BY ';'
         ENCLOSED BY '\\'
         ESCAPED BY '\\'
         LINES TERMINATED BY '\\n'
         IGNORE 11 LINES
      ";
    ...
    ...
    ...
    ...
                  $ResultatRequeteInjectionGestionSite = mysql_query($RequeteInjectionGestionSite) or die("Erreur dans la requÛte : " . $RequeteInjectionGestionSite);
    ...
    ...
    ...

    Résultat :
    Erreur dans la requęte : LOAD DATA INFILE 'D:\xampp\htdocs\MonSite\UpLoad\MonFichier.csv' INTO TABLE `t_GestionSites` FIELDS TERMINATED BY ';' ENCLOSED BY '\' ESCAPED BY '\' LINES TERMINATED BY '\n' IGNORE 11 LINES;

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOAD DATA INFILE 'D:\xampp\htdocs\MonSite\UpLoad\MonFichier.csv' INTO TABLE `t_GestionSites` FIELDS TERMINATED BY ';' ENCLOSED BY '\' ESCAPED BY '\' LINES TERMINATED BY '\n' IGNORE 11 LINES;
    Regarde la requête que ton code PHP exécute : ce n'est pas la même que celle que tu lances avec PhpMyAdmin... Dans ton code PHP, tu as bien doublé le \ pour le \n, mais tu ne l'as pas fait pour les autres \.

    Sinon, un petit conseil pour débuguer plus facilement : utilise la fonction mysql_error() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ResultatRequeteInjectionGestionSite = mysql_query($RequeteInjectionGestionSite) or die("Erreur dans la requête : " . mysql_error());

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    bah justement si les "\" sont bien doublés.
    ENCLOSED BY '\\'
    ESCAPED BY '\\'
    Ou alors là je ne vois pas du tout.
    Sinon j'ai rajouter la fonction comme tu l'indiques et voici le résultat :
    Erreur dans la requęte : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' LINES TERMINATED BY '\n' IGNORE 11 LINES (`AdresseDebutPlag' at line 4
    J'ai aussi modifié le code pour être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      $RequeteInjectionGestionSite = "
    LOAD DATA INFILE 'D:\\xampp\\htdocs\\MonSite\\UpLoad\\MonFichier.csv'
         INTO TABLE `t_GestionSites`
         FIELDS TERMINATED BY ';'
         ENCLOSED BY '\\'
         ESCAPED BY '\\'
         LINES TERMINATED BY '\\n'
         IGNORE 11 LINES
         (`AdresseDebutPlage`, `AdresseFinPlage`, `AdresseIP_Agent`, `DNS_Agent`, `SiteComplet`, `Direction`);
      ";

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    bon j'ai fini par trouver le pb et en effet il manquait des "\" j'ai donc corrigé celà.
    Par contre il me reste toujours des pb avec l'import.
    J'ai l'impression qu'il y a des caractères cachés dans le dernier champs après la valeur réelle.
    Comment résoudre ceci svp ?
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Sécurité en importation CSV avec PHP
    Par smccbbm dans le forum MySQL
    Réponses: 2
    Dernier message: 04/12/2014, 18h30
  2. [MySQL] Importer csv en PHP dans BDD.
    Par stevenP dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/01/2014, 10h24
  3. [MySQL] importation fichier CSV avec php et mysql
    Par NapsterVB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2013, 10h01
  4. [MySQL] Script d'importation csv vers une table (mysql) via un formulaire
    Par sarabaïte dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/03/2011, 06h31
  5. [CSV] Tableau php avec mysql dans un fichier excel
    Par saraza dans le forum Langage
    Réponses: 3
    Dernier message: 06/01/2009, 18h33

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