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

PHP & Base de données Discussion :

Errcode: 2 : Problème avec Load data local infile


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut Errcode: 2 : Problème avec Load data local infile
    Bonjour à tous,

    J'ai un problème avec mon script php qui marche de façon normal en local sur mon poste mais qui me renvoi une erreur lorsque j'ai mon fichier .php sur le serveur.

    En fait, à partir de la page php, je fais un load data infile dans ma table export.
    Lorsque j'effectue cette opération sur le serveur j'ai une erreur SQL :

    Erreur SQL !LOAD DATA LOCAL INFILE 'C:/Documents and Settings/Jarod51/Bureau/inca.csv' INTO TABLE export FIELDS TERMINATED BY '|' ENCLOSED BY ' '
    File 'C:/Documents and Settings/Jarod51/Bureau/inca.csv' not found (Errcode: 2)


    Ce que je ne comprends pas c'est que en local ça marche.

    Mon script php est le suivant :

    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
     
    $fichier = $_POST["datafile"];
     
     $slash = "/";
     $antislash = "\\";
     
     $newpath = str_replace($antislash, $slash, $fichier);
     
     
    //On importe le fichier dans la base de données en utilisant l'action LOAD DATA INFILE
     
    $query = "LOAD DATA LOCAL INFILE '$newpath' 
    INTO TABLE export
    FIELDS TERMINATED BY '|' 
    ENCLOSED BY '\n' ";
     
    mysql_query($query) or die('Erreur SQL !'.$query.'<br>'.mysql_error());
    Avez vous une idée de quoi ça vient ?

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 814
    Billets dans le blog
    14
    Par défaut
    Est-ce que sur le serveur le fichier inca.csv se trouve bien dans le répertoire C:/Documents and Settings/Jarod51/Bureau/ ?
    Et est-ce que Apache peut lire ce répertoire ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    je dirais que tu essayes d'utiliser ton serveur un fichier qui se trouve sur ton poste local. Le serveur n'étant pas doté de la fonctionnalité "boule de cristal", il ne risque pas de le trouver

    Sérieusement, je suppose que le champ 'datafile' est un champ texte où tu indiques le chemin d'accès au fichier. Si tu veux que ton serveur ait accès au fichier en question, 2 possibilités :
    - le fichier estdéjà sur le serveur. Tu indiques le bon chemin menant à ce fichier dans le serveur.
    - tu lui envoies carrément le fichier depuis ton poste via un input file, que tu stockes à un endroit prévu pour ça et tu utilises cette copie sur le serveur comme fichier de chargement.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Bonjour CinePhil & Celira,

    oui effectivement mon fichier .csv est en local sur mon poste. Il faut donc que je m'oriente vers un un input file qui envoie carrément le fichier depuis mon vers le serveur pour que ça marche.

    Il faut que je regarde la method des upload vers les serveurs.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as PDO ou Mysqli ?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    salut stealth35,

    j'ai Mysqli pas de PDO. Pourrais tu m'en dire plus ?

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Jarod51 Voir le message
    salut stealth35,

    j'ai Mysqli pas de PDO. Pourrais tu m'en dire plus ?
    si t'as Mysqli tu pourras faire une requête préparée pour insérer rapidement ton csv, (tu peux aussi le faire avec mysql_* mais c'est plus galère)

    EDIT : mais le fichier temporaire de l'upload devrai suffir

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    si t'as Mysqli tu pourras faire une requête préparée pour insérer rapidement ton csv
    Est ce que ça veut dire que c'est faisable à partir d'un fichier qui est en local sur mon poste que j'envoie vers un serveur. Ou bien c'est en complément du input file ?

    Merci.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Jarod51 Voir le message
    Est ce que ça veut dire que c'est faisable à partir d'un fichier qui est en local sur mon poste que j'envoie vers un serveur. Ou bien c'est en complément du input file ?

    Merci.
    en complément, le fichier doit toujours être sur le serveur

Discussions similaires

  1. [MySQL] Deux problèmes sur LOAD DATA LOCAL INFILE
    Par ferd7 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/07/2015, 15h12
  2. [MySQL-5.1] LOAD DATA LOCAL INFILE problème avec ²
    Par tabtabdev dans le forum Requêtes
    Réponses: 0
    Dernier message: 30/01/2015, 10h03
  3. Insertion avec LOAD DATA LOCAL INFILE
    Par Krys006 dans le forum Débuter
    Réponses: 2
    Dernier message: 04/05/2008, 16h40
  4. 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
  5. problème avec load data local
    Par afrikha dans le forum Débuter
    Réponses: 2
    Dernier message: 28/10/2005, 18h36

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