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 : 419
    Points
    419

    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, 09h13
  2. LOAD DATA LOCAL INFILE
    Par bruno782 dans le forum Administration
    Réponses: 9
    Dernier message: 15/02/2006, 15h35
  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, 10h09
  4. LOAD DATA LOCAL INFILE????
    Par perlgirl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/01/2005, 19h31

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