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 :

Load data local Infile dynamique


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Load data local Infile dynamique
    Bonjour,

    Mon problème est simple (ou pas) je cherche a effectuer une insertion d'un csv dans une base de données en utilisant la commande LOAD DATA LOCAL INFILE.
    J'ai déjà effectuer la commande de manière "classique", mais j'ai besoin de l'utiliser de manière dynamiques car j'ai un grand nombre de table possible.
    Voici ma commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=mysqli_query($link,'LOAD DATA LOCAL INFILE "'.$choixDoc.'"  INTO TABLE itopsoftware FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' ESCAPED BY \'\' LINES TERMINATED BY \',\' IGNORE 1 LINES ') or die("Erreur mise à jour table : ".mysqli_error($link));
    Cette commande rempli uniquement une moitié de la solution, j'aimerais pouvoir l'utiliser de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=mysqli_query($link,'LOAD DATA LOCAL INFILE "'.$choixDoc.'"  INTO TABLE "'.$nomtable.'" FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' ESCAPED BY \'\' LINES TERMINATED BY \',\' IGNORE 1 LINES ') or die("Erreur mise à jour table : ".mysqli_error($link));
    Ou $nomtable est défini au préalable, néanmoins, je n'arrive pas a faire passer la commandes a cause d'une erreur de syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 '"salle" FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '' LINES TERMINATED ' at line 1
    Un peu d'aide serait apprécié

    PS: problème similaire sur cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $doc=mysqli_query($link,'SELECT * INTO OUTFILE "'.$path.'" FIELDS TERMINATED BY \';\' LINES TERMINATED BY \',\' FROM "'.$nomtable.'" ')

  2. #2
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Un peu plus de précision sur tes variables.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $choixDoc = $_POST['choixDoc'];
    Dont le contenu est transmis par une autre page (pas de problème a se niveau la ).
    choixDoc contient le nom complet d'un fichier CSV cad: " salle.csv " par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nomtable = substr("'.$choixDoc.'", 0, -6);
    Je suis moins sur pour celle la, je cherche à retirer l'extension du fichier (donc .csv) mais le problème doit venir d'ici.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Solution trouvée !
    Après plusieurs echo en changeant le contenue de substr, j'ai remarquer que le problème venait bien de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nomtable = substr("'.$choixDoc.'", 0, -6);
    la bonne syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nomtable = substr("$choixDoc", 0, -4);
    Avec ca, plus d'erreur.

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

Discussions similaires

  1. probleme avec <<load data local infile etc>> errcode: 2
    Par oumaridia dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/11/2007, 08h13
  2. LOAD DATA LOCAL INFILE
    Par bruno782 dans le forum Administration
    Réponses: 9
    Dernier message: 15/02/2006, 14h35
  3. Autoriser le LOCAL de LOAD DATA LOCAL INFILE
    Par talvins dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 03/02/2006, 09h09
  4. LOAD DATA LOCAL INFILE????
    Par perlgirl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/01/2005, 18h31

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