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 :

Fonctionnement de LOAD DATA


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 407
    Par défaut Fonctionnement de LOAD DATA
    bonjour

    j'essaye d'importer dans ma base un fichier csv ou txt, j'ai pour le moment tapé quelques lignes pour tester, et ça ne fonctionne pas, rien n'est enregistré dans ma base.
    le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form method="post" enctype="multipart/form-data" action="testimportxl2.php">
    	<table width="628" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee">
        <tr>
          <td width="219"><font size=3><b>Selectionner votre fichier *.csv :</b></font></td>
          <td width="244" align="center"><input type="file" name="userfile" value="userfile"></td>
          <td width="137" align="center">
            <input type="submit" value="Envoyer" name="envoyer">
          </td>
        </tr>
    	</table>
    	</form>
    le traitement
    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
    <?php
     
    $liendb=mysql_connect (':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', 'root')
    or die("Connexion:".mysql_error());
    mysql_select_db ("ontech")or die("Select db: ".mysql_error());
     
     
    mysql_query("LOAD DATA LOCAL INFILE ‘$fichier
    REPLACE 
    INTO TABLE doc 
    FIELDS 
    TERMINATED BY ',' 
    ENCLOSED BY '*' 
    ESCAPED BY '\\' 
    LINES 
    STARTING BY '' 
    TERMINATED BY '\n' ");
    ?>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Le code est incomplet :
    • $fichier n'est pas définie (serait-ce $_FILES['userfile']['tmp_name'] ?)
    • Votre requête n'est pas testée et ne permet pas de déterminer s'il y a une erreur et si oui de savoir laquelle (or die(mysql_error());)


    (mettre error_reporting à E_ALL serait utile et il doit manquer des antislashs au niveau de la partie ESCAPED BY).

  3. #3
    Membre éclairé

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 407
    Par défaut

    désolé pour la variable elle a sauté lors d'une de mes manip.
    merci pour le (or die(mysql_error());
    j'avais un problème avec le ESCAPED BY '\\', qui me faisait une erreur.
    et si je veux utiliser comme séparateur de champ le " j'ai également une erreur
    y a t'il un moyen de résoudre le probleme, ou vaut il mieux changer de séparateur.

  4. #4
    Membre éclairé

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 407
    Par défaut
    j'ai une autre question concernant les load data.
    comment peut on faire pour que si la même référence existe elle soient en replace pour une mise a jour, mais que si elle n'existe pas déja dans la base elle soit rajouté à la suite des données existantes.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/09/2013, 02h18
  2. [MySQL] LOAD DATA INFILE qui fonctionne à moitié
    Par thedeadman dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 08/06/2011, 08h51
  3. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59
  4. petit soucis lors d'un LOAD DATA INFILE
    Par Jovial dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 04/06/2004, 11h58
  5. insertion des blob avec LOAD DATA...
    Par orli1x51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/10/2003, 18h05

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