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

Langage PHP Discussion :

Problème importation fichier MYSQL


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut Problème importation fichier MYSQL
    Bonjour,

    Je sollicite votre aide concernant un requete d'importation, je souhaite importer un fichier en "LOAD DATA INFILE" dans ma base.
    J'ai effectué 2 pages comme détaillés ci-dessous:

    Recherche du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form method="POST" action="upload.php" enctype="multipart/form-data">
         <!-- On limite le fichier à 100Ko -->
         <input type="hidden" name="MAX_FILE_SIZE" value="100000">
         Fichier : <input type="file" name="fichier">
         <input type="submit" name="envoyer" value="Envoyer le fichier">
     
    </form>
    Puis Insertion dans la base :
    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
    28
    29
    30
    31
    <?php
     
    // Connexion au serveur MySQL 
    mysql_connect("localhost", "root", "");
    // Séléction de base de données
    mysql_select_db("as");
    // On construit le chemin du fichier
    $chemin_du_fichier['fichier']['name'];
     
    // Si le fichier existe bien
    if (file_exists($chemin_du_fichier))
            {
     
                    // Requête d'enregistrement
                    mysql_query("LOAD DATA INFILE '$chemin_du_fichier'
                    INTO TABLE `archiveimport`
                    FIELDS TERMINATED BY ','
                    ENCLOSED BY '"' 
                    ESCAPED BY '\' 
                    LINES TERMINATED BY 'rn';") or die (mysql_error());
                    
                    // Fermeture de la base !
                    mysql_close();
            }
    else
            {
                    // On affiche une erreur
                    echo "Fichier introuvable \\"$chemin_du_fichier\\"<br />";
            }
    
    ?>
    Cependant le code ne fonctionne pas et je ne vois pas d'ou viens l'erreur.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as mangé un bout de ton code je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin_du_fichier = $_FILES['fichier']['tmp'];
    Plutot que file_exists(), utilise is_uploaded_file()

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    J'ai mofiié le code qui ressemble à ça maintenant :
    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
    28
    29
    30
    31
    <?php
     
    // Connexion au serveur MySQL 
    mysql_connect("localhost", "root", "");
    // Séléction de base de données
    mysql_select_db("as");
    // On construit le chemin du fichier
    $chemin_du_fichier = $_FILES['fichier']['tmp'];
     
    // Si le fichier existe bien
    if (is_uploaded_file($chemin_du_fichier))
            {
     
                    // Requête d'enregistrement
                    mysql_query("LOAD DATA INFILE '$chemin_du_fichier'
                    INTO TABLE `archiveimport`
                    FIELDS TERMINATED BY ','
                    ENCLOSED BY '"' 
                    ESCAPED BY '\' 
                    LINES TERMINATED BY 'rn';") or die (mysql_error());
    								
                    // Fermeture de la base !
                    mysql_close();
            }
    else
            {
                    // On affiche une erreur
                    echo "Fichier introuvable \\"$chemin_du_fichier\\"<br />";
            }
    
    ?>
    Mais cela me renvoi un message erreur "Parse error: parse error in C:\wamp\www\test import\upload.php on line 19" ce qui correspond à la ligne "ESCAPED BY '\' "

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut que tu echappes ton guillemet :

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    J'ai modifié mon code comme ci-dessous, je n'ai plus de message d'erreur cependant le code ne trouve pas le fichier.

    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
    <?php
     
    // Connexion au serveur MySQL 
    mysql_connect("localhost", "root", "");
    // Séléction de base de données
    mysql_select_db("as");
    // On construit le chemin du fichier
    $chemin_du_fichier = $_FILES['fichier']['name'];
     
    // Si le fichier existe bien
    if (is_uploaded_file($chemin_du_fichier))
            {
     
     
                    // Requête d'enregistrement
                    mysql_query("LOAD DATA INFILE '$chemin_du_fichier'
    INTO TABLE `archiveimport` FIELDS TERMINATED BY \',\' ENCLOSED BY \'\"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\';") or die (mysql_error());
     
                    // Fermeture de la base !
                    mysql_close();
            }
    else
            {
                    // On affiche une erreur
                    echo "Fichier introuvable <br />";
            }
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as remis name au lieu de tmp

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    J'ai modifié le tmp mais le code ne trouve pas le fichier.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as controlé ce que valait $chemin_du_fichier ?

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Ba justement, c'est peut etre là que je peche, puisque le chemin est récupéré sur ma première page et comme je ne controle pas encore le imput, j'ai peut etre fais une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form method="POST" action="upload.php" enctype="multipart/form-data">
         <!-- On limite le fichier à 100Ko -->
         <input type="hidden" name="MAX_FILE_SIZE" value="100000">
         Fichier : <input type="file" name="fichier">
         <input type="submit" name="envoyer" value="Envoyer le fichier">
     
    </form>

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et est ce que tu as contrôlé $chemin_du_fichier ? un contrôle c'est un simple echo hein.

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    j'ai fais un echo sur $chemin_du_fichier et rien ne s'affiche

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fais un pour voir ce que tu recois du formulaire

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    voilà ce que je recois :

    Array ( [fichier] => Array ( [name] => ActArch.csv [type] => [tmp_name] => [error] => 2 [size] => 0 ) )

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu envoies un fichier qui est plus gros que la limité que tu as mise

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    j'ai modifié la value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="MAX_FILE_SIZE" value="100000000">
    Mon ficher lui fait 179ko

    et le print affiche maintenant:

    Array ( [fichier] => Array ( [name] => ActArch.csv [type] => application/vnd.ms-excel [tmp_name] => C:\wamp\tmp\php440B.tmp [error] => 0 [size] => 183310 ) )

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    oups je t'ai dit "tmp" mais c'est "tmp_name"

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Effectivement ca passe maintenant j'ai un autre message d'erreur :

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\Nouveau dossier\upload.php on line 19

    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
    28
    29
    30
    <?php
     
    // Connexion au serveur MySQL 
    mysql_connect("localhost", "root", "");
    // Séléction de base de données
    mysql_select_db("as");
    // On construit le chemin du fichier
    $chemin_du_fichier = $_FILES['fichier']['tmp_name'];
    echo $chemin_du_fichier;
    print_r($_FILES);
     
    // Si le fichier existe bien
    if (is_uploaded_file($chemin_du_fichier))
            {
     
     
                    // Requête d'enregistrement
                    $req=mysql_query("LOAD DATA INFILE '$chemin_du_fichier'
    INTO TABLE `archiveimport` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\\\\' LINES TERMINATED BY 'r\n\';") or die (mysql_error());
    
                    // Fermeture de la base !
                    mysql_close();
            }
    else
            {
                    // On affiche une erreur
                    echo "Fichier introuvable <br />";
            }
    echo $req
    ?>

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je t'ai deja répondu pour ça il y a 5 heures

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 67
    Points
    67
    Par défaut
    Cela fait maintenant presque 2 heures que je cherche et je trouve pas le problème, la page me renvoie une erreur à la ligne correspondante a :
    $sql = LOAD DATA ........

    code complet
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
     
    // Connexion au serveur MySQL 
    mysql_connect("localhost", "root", "");
    // Séléction de base de données
    mysql_select_db("as");
    // On construit le chemin du fichier
    $chemin_du_fichier = $_FILES['fichier']['tmp_name'];
    echo $chemin_du_fichier;
    print_r($_FILES);
     
    // Si le fichier existe bien
    if (is_uploaded_file($chemin_du_fichier))
            {
     
                    // Requête d'enregistrement
                    $sql = LOAD DATA LOCAL INFILE '$chemin_du_fichier' 
    											 INTO TABLE archiveimport 
    											 FIELDS TERMINATED BY ',' 
    											 ENCLOSED BY '\"' 
    		 			 						 ESCAPED BY "\\\" 
    											 LINES TERMINATED BY '\\r\\n'"
    											 or die (mysql_error());
     
    								mysql_query($sql);
    								echo $sql;
     
                    // Fermeture de la base !
                    mysql_close();
            }
    else
            {
                    // On affiche une erreur
                    echo "Fichier introuvable <br />";
            }
    ?>

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Faut peut etre mettre un guillemet pour commencer ta chaine non ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème import fichier.txt
    Par ndundux dans le forum Import/Export
    Réponses: 4
    Dernier message: 23/09/2008, 17h12
  2. Réponses: 3
    Dernier message: 17/07/2008, 21h59
  3. Problème Import fichier Excel
    Par yblok dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/05/2008, 18h56
  4. Problème Import fichier texte
    Par Fantomas13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/01/2008, 23h08
  5. Probléme import Fichier CSV
    Par wylls dans le forum Outils
    Réponses: 12
    Dernier message: 12/12/2006, 12h48

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