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

Requêtes MySQL Discussion :

[mysql/php]load Data Infile Pb


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut [mysql/php]load Data Infile Pb
    Bonjours je debute en mysql et je doit faire une importation d'un fichier texte vers ma table CRM21_Fir_Histo .J'ai trouver cette fonction MySql mais lorsque je la lance le resultat est Query Failed . J'ai regarder j'ai déja reussi a faire des requete a ma base avec des query mais celle ci ne passe pas . Avez vous une idée? Mon fichier texte.txt ce trouve dans le www de EasyPhp .Mon fichier de connection fonctionne bien il est tester et approuver .

    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
    22
    23
     
    require('../UsineV2/bdd_c.php');
    $query="LOAD DATA INFILE ‘./texte.txt’ 
    INTO TABLE CRM21_Fir_Histo (Nomad/Forfait,Num_compte_client,Contrat,StatutContrat,NumMobile,Motif,
    CommentDossier,Univers,Numero_action,Theme,Action1,Action2,Etat,
    Demandeur,Date_de_creation_action,DateEffetSouhaite,DateEffetReel,
    Competence_destinataire,CdcDest,SiteCdcDest,EquipeCdcDest,Media,
    NumeroContact,CdcCreateur,SiteCdcCreateur,EquipeCdcCreateur,
    CdcModificateur,DateModifAction,NumMobile_Fax,Modele,Expediteur,
    Destinataire,Date/Heure,Lieu,CodePostal,ParametrageVerifMarqueOICK,
    HLR,TestCroiséeOK,FonctionnaitAvt,Mail,ServiceContenu,Wap_GPRS,NAM,
    Descriptif,Reponse_Reseau,Reponse_Optim,Commentaire_Optim,Reponse_STC,
    Champ50)
    FIELDS 
    TERMINATED BY '|' 
    ENCLOSED BY ‘|’ 
    LINES 
    STARTING BY '' 
    TERMINATED BY '\n' "; 
     
    $result_activities = mysql_query($query) or die ("Query Failed!");  
     
    echo 'test'
    Merci de votre aide

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Fais plutôt un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result_activities = mysql_query($query) or die (mysql_error());
    pour voir l'erreur renvoyée par MySQL.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    OK nice comme commande !!
    Merci MAx !

    Voila le resultat :

    Erreur de syntaxe près de './texte.txt’ INTO TABLE CRM21_Fir_Histo (Nomad/Forfait,Num_com' à la ligne 1
    Il ne doit pas trouver mon fichier ! je vais voir de ce coté la !

    Vous en pensez quoi?

    thx

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    Voila le code un peu revu

    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
    22
    23
    24
    25
    26
    27
     
    <?
    require('../UsineV2/connexion.php');
     
    $query=("LOAD DATA INFILE '../UsineV2/texte.txt' 
    INTO TABLE CRM21_Fir_Histo 
    FIELDS 
    TERMINATED BY '|' 
    ENCLOSED BY '' 
    ESCAPED BY '\\'
    LINES 
    STARTING BY '' 
    TERMINATED BY '\n' 
    (Nomad/Forfait,Num_compte_client,Contrat,StatutContrat,NumMobile,Motif,
    CommentDossier,Univers,Numero_action,Theme,Action1,Action2,Etat,
    Demandeur,Date_de_creation_action,DateEffetSouhaite,DateEffetReel,
    Competence_destinataire,CdcDest,SiteCdcDest,EquipeCdcDest,Media,
    NumeroContact,CdcCreateur,SiteCdcCreateur,EquipeCdcCreateur,
    CdcModificateur,DateModifAction,NumMobile_Fax,Modele,Expediteur,
    Destinataire,Date/Heure,Lieu,CodePostal,ParametrageVerif,MarqueOICK,
    HLR,TestCroiséeOK,FonctionnaitAvt,Mail,ServiceContenu,Wap_GPRS,NAM,
    Descriptif,Reponse_Reseau,Reponse_Optim,Commentaire_Optim,
    Reponse_STC,Champ50) "); 
     
    $result_activities = mysql_query($query) or die (mysql_error()); 
     
    ?>
    Et toujours une erreur :

    Erreur de syntaxe près de '' (Nomad/Forfait,Num_compte_client,Contrat,StatutContrat,NumMo' à la ligne 7

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Nomad/Forfait n'est pas un nom de colonne valide, choisis autre chose (Nomad_forfait ...)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    OK c fais et toujours le meme probleme !

    J'ai enlevé les / partout ! Comment verifier que le fichier est bien atteint?
    OU faut il placer ce fichier?


    Erreur de syntaxe près de '' (Nomad_Forfait,Num_compte_client,Contrat,StatutContrat,NumMo' à la ligne 7

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Points : 218
    Points
    218
    Par défaut
    Salut.

    La commande LOAD DATA INFILE peut être désactivée. C'est une commande hot pour la sécurité, surtout avec l'option LOCAL.
    Il doit falloir des privilèges spécifiques voir une activation au lancement de mysqld...

    J'invite à consulter la doc online: http://dev.mysql.com/doc/refman/5.0/fr/index.html

    Ca doit bien etre dit quelquepart... Désolé de ne pouvoir faire mieux.
    M'enfin bon, avant d'en arriver là il y a un autre problème.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    HEllo Chat !! Merci de ta reponse , j'ai lu cette doc très interressante donc effectivement a priori klk pb de securité du coté de LOAD DATA LOCAL mais j'ai pas l'erreur il suffit de l'activer a priori c'est ok sur ma config car sinon j'aurai l'erreur :

    Au cas où LOAD DATA LOCAL INFILE est désactivé sur le serveur ou le client, vous obtiendrez le message d'erreur (1148) :

    The used command is not allowed with this MySQL version
    Et j'ai pas du tout cette erreur.

  9. #9
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Les noms des colonnes ne se mettraient pas à la fin plutôt qu'au début ?

    http://dev.mysql.com/doc/refman/5.0/en/load-data.html

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    Hello MAx !

    Même erreur si je mets les champs a la fin j'ai essayer de voir si il n'y avait pas une autre fonction pour charger un fichier texte dans une base .


    En connait tu ??

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    J'ai trouver la soluce ça marche ! Il faut que je place les fichiers sur le serveur et j'avais une faute dans un de mes champs !

    Merci a vous 2 !

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    La requete marche lorsque je la lance de phpmyadmin mais elle ne se lance plus lorque j'utilise le querry!! il me met la même erreur de syntaxe !

    Erreur de syntaxe près de '\n' (Nomad_Forfait, Num_compte_client, Contrat, StatutContrat, ' à la ligne 6
    J'ai enlever les accents et les caractere speciaux de ma requete mais faut il faire klk chose de special?

    Merci

  13. #13
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Normal vous etes en PHP et ouvrez la chaîne de caractère avec une double-quote ! Donc \\ ne se traduit que par un antislash après interprétation PHP et \n se traduit par un vrai retour chariot !

    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
    $query=("LOAD DATA INFILE '../UsineV2/texte.txt' 
    INTO TABLE CRM21_Fir_Histo 
    FIELDS 
    TERMINATED BY '|' 
    ENCLOSED BY '' 
    ESCAPED BY '\\\\'
    LINES 
    STARTING BY '' 
    TERMINATED BY '\\n' 
    (Nomad/Forfait,Num_compte_client,Contrat,StatutContrat,NumMobile,Motif,
    CommentDossier,Univers,Numero_action,Theme,Action1,Action2,Etat,
    Demandeur,Date_de_creation_action,DateEffetSouhaite,DateEffetReel,
    Competence_destinataire,CdcDest,SiteCdcDest,EquipeCdcDest,Media,
    NumeroContact,CdcCreateur,SiteCdcCreateur,EquipeCdcCreateur,
    CdcModificateur,DateModifAction,NumMobile_Fax,Modele,Expediteur,
    Destinataire,Date/Heure,Lieu,CodePostal,ParametrageVerif,MarqueOICK,
    HLR,TestCroiséeOK,FonctionnaitAvt,Mail,ServiceContenu,Wap_GPRS,NAM,
    Descriptif,Reponse_Reseau,Reponse_Optim,Commentaire_Optim,
    Reponse_STC,Champ50) ");
    Je le dis très régulièrement ! Quand la requête marche pas sous PHP remplacez mysql_query par echo pour voir votre erreur.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 95
    Points : 41
    Points
    41
    Par défaut
    Merci Probleme resolu !! J'userai de la technique de l'echo la prochaine fois ..

    Merci beaucoup !!

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

Discussions similaires

  1. [MySQL] Syntaxe requête LOAD DATA INFILE avec php
    Par yann123456 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/08/2010, 23h40
  2. [MySQL] [EasyPhp,Mysql] Commande "LOAD DATA INFILE"
    Par Jahprend dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/06/2009, 17h37
  3. LOAD DATA INFILE et Mysql 5
    Par bigsister dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 08/11/2007, 12h55
  4. [MySQL]Problème avec load data infile
    Par GLDavid dans le forum SGBD
    Réponses: 5
    Dernier message: 16/03/2007, 13h36
  5. Mysql 5: difficulté avec load data infile
    Par koueletbak dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/05/2006, 18h16

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