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

Requêtes MySQL Discussion :

load data


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 26
    Par défaut load data
    Bonjour,
    Je crée un site permettant à l'utilisateur d'entrer des nouveaux enregistrement dans la table via un fichier txt.
    La premiere ligne du fichier correspond à la liste des variables de la table(séparée par des virgules) tandis que les lignes suivantes sont les enregistrement (1 enregistrement par ligne, les valeur des variables étant séparées par des virgules)
    Pour celà j'utilise :
    $query="LOAD DATA CONCURRENT INFILE '$saved_tmp_file' REPLACE INTO TABLE `maTable` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n' IGNORE 1 LINES ($newChaine3)";

    Mais le soucis est que lorsque l'enregistrement possede des aucune valeur pour une variable, il reste donc vide, dans ma base de donnée il prend pour valeur "0"!
    Pour être plus claire :
    Le fichier ressemble à :
    ident,variable1,variable2,variable3
    6,,25,65
    7,,,,
    8,17,16,3
    et les ",," sont remplacé par des 0 dans ma table.

    Comment puis je gérer ce problème?
    Merci pour vos sugestions.

  2. #2
    Membre Expert
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Par défaut
    Bonjour,

    Quel comportement serait souhaitable ? Quelle est la version de MySQL ? Les champs en question sont-ils déclaré NOT NULL ?

    PS: Merci de

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 26
    Par défaut
    Bonsoir Adjanakis,

    Quel comportement serait souhaitable ?
    en fait je souhaite qu'il laisse ce champs à vide ou bien au pire des cas avoir le mot "NULL" et non "0" car le probleme c'est que les variables peuvent prendre le chiffre 0 comme valeur.

    Quelle est la version de MySQL ?
    MySQL-4.1.12

    Les champs en question sont-ils déclaré NOT NULL ?
    non ils sont declaré comme pouvant être NULL car certains enregistrement peuvent ne pas avoir de données pour un champs.

    En fait, les champs qui prennent pour valeur "0" au lieu de rester vide lors de l'insertion d'enregistrement via le fichier.txt , ces champs ont pour type des "int" ou "float".... dans le cas des champs typé "char", ils restent bien à vide lorsque le fichier ne contien aucune valeur pour ce champs...

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    Essaie peut-être avec un DEFAULT NULL dans la définition des colonnes...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 26
    Par défaut
    Essaie peut-être avec un DEFAULT NULL dans la définition des colonnes...
    j'avais essayé mais ca ne marchait pas quand même...
    J'ai néanmoins trouvé la solution à mon probleme : je reformate mon fichier entrant via php...
    plus exactement une fois qu'il arrive sur mon server j'y apporte les modification necessaire : remplacement des champs vide par "NULL" et dans ma requête "LOAD DATA CONCURRENT INFILE" j'y ajoute " ENCLOSED BY ',' . Celà me permet d'avoir dans ma base des enregistrement dont certains de leur champs on 'NULL' et non '0' .

    Merci quand meme pour vos suggestions.

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

Discussions similaires

  1. LOAD DATA & Unicode
    Par Thomy Lobo dans le forum Requêtes
    Réponses: 8
    Dernier message: 25/07/2004, 17h41
  2. probleme avec "LOAD DATA INFILE" et les b
    Par Koo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2004, 09h37
  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