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 :

Disparition de guillemets à l'exportation


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
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut Disparition de guillemets à l'exportation
    Bonjour,

    J'ai jusqu'ici souvent transféré des bases de données d'un hébergeur à un autre, et jusqu'ici jamais je n'avais rencontré de problèmes tels que celui-ci.

    J'ai donc exporté mes données depuis mon ancien hébergeur dont voici les caractéristiques (reccueillies en page d'accueil phpMyAdmin).
    • phpMyAdmin 2.6.0-pl1
    • MySQL 4.1.18-standard
    • Jeu de caractères : UTF-8 Unicode (utf8)
    • Interclassement : utf8_general_ci
    • Chose louche, dans les bases, l'interclassement est latin1_swedish_ci
    • Je n'arrive plus à visualiser certaines tables depuis quelques jours


    Donc, mes données exportées, je tente l'importation chez mon nouvel hébergeur... et paf, erreurs à la chaîne. Quelque soit la table, il y a des erreurs. J'ai donc jeté un coup d'oeil dans le fichier .sql exporté... et apparemment il manque des guillemets un peu partout. Par exemple :

    (excusez-moi, mais avec les balises code, mon code ne veut pas s'afficher)
    INSERT INTO `agenda_chars` VALUES (1, '2', 'Nom', 'Classe', 'Sexe', Guilde, 'Niveau', Race, 15, 170, 25, 118, 118);

    En les ajoutant manuellement, "miracle" ça passe dans la base de données. Seulement voilà, j'ai un fichier bloc-notes de 33Mb+ je ne pourrais m'imaginer de placer les guillemets à la main, sous peine d'y passer ma vie...

    Je ne sais pas trop que faire.
    Mille mercis d'avance pour votre aide.

    /edit

    Excusez-moi j'ai oublié les données de mon nouvel hébergeur...
    • MySQL - 4.1.19-standard
    • phpMyAdmin - 2.8.0.2
    • Même jeu de caractères et même interclassement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut
    Je vous ajoute l'erreur que j'ai à l'importation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    requête SQL:
     
    -- 
    -- Contenu de la table `agenda_chars`
    -- 
    INSERT INTO `agenda_chars` ( `char_id` , `profile_id` , `name` , `class` , `gender` , `guild` , `lvl` , `race` , `arcane` , `fire` , `frost` , `nature` , `shadow` )
    VALUES ( 1, '2', 'Elëhwen', 'Priest', 'male', UN, '60', Night Elf, 15, 170, 25, 118, 118 ) ;
     
    MySQL a répondu:Documentation
    #1064 - 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 'Elf, 15, 170, 25, 118, 118)' at line 1
    Ainsi que la structure de la table concernée :

    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
    -- 
    -- Structure de la table `agenda_chars`
    -- 
     
    CREATE TABLE `agenda_chars` (
      `char_id` int(10) NOT NULL auto_increment,
      `profile_id` int(10) NOT NULL default '0',
      `name` varchar(255) NOT NULL default '',
      `class` varchar(255) NOT NULL default '',
      `gender` varchar(255) NOT NULL default '',
      `guild` varchar(255) NOT NULL default '',
      `lvl` int(3) NOT NULL default '0',
      `race` varchar(255) NOT NULL default '',
      `arcane` int(5) NOT NULL default '0',
      `fire` int(5) NOT NULL default '0',
      `frost` int(5) NOT NULL default '0',
      `nature` int(5) NOT NULL default '0',
      `shadow` int(5) NOT NULL default '0',
      PRIMARY KEY  (`char_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=59 ;

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut
    Effectivement cela ressemble à un problème de guillemets. Les guillemets simples doivent être mis sur les champs correspondants à un varchar, et il ne doit pas y avoir de guillemets sur les entiers, là c'est décalé: guillemets sur le 2 et le 60 mais pas sur UN ni Night Elf.

    Donc à l'exportation il met les guillemets sur les mauvais champs c'est bizarre...

    Essaye peut etre en cochant la case "Insertions complètes" quand tu fais l'exportation...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut
    Hello et merci !
    J'ai déjà tenté l'exportation en cochant Insertions complètes mais ça ne change malheureusement rien

  5. #5
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Je ne sais pas de quoi ça vient (je suppose quand même que c'est phpMyAdmin), mais mes trois propositions sont :

    * Tu refais un dump des données manuellement à partir de SELECT et fwrite()

    * Tu utilises les expressions régulières pour modifier ton fichier de 33Mo et faire en sorte que chaque valeur de champ soit entouré de quotes. MySQL ne bronche pas si des entiers sont fournis en chaînes.

    * Tu te fais un petit script, en PHP par exemple qui lit chaque INSERT INTO. Et à coups de explode() / split(), tu te recrées des requêtes d'insertion correctes.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut
    Bonjour Biglo et merci,

    Un ami m'a suggéré d'installer la dernière version de phpmyadmin sur mon premier hébergeur et de réexporter le tout, ce qui semble marcher jusqu'ici ! C'était donc bien phpmyadmin.

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

Discussions similaires

  1. [XL-2010] Export csv avec guillemets
    Par FaridM dans le forum Excel
    Réponses: 2
    Dernier message: 17/07/2013, 17h04
  2. Problème guillemet export csv
    Par oui monsieur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2013, 14h28
  3. Export résultat sans guillemet
    Par Zab69 dans le forum Sql Developer
    Réponses: 2
    Dernier message: 28/09/2011, 17h36
  4. [PHP 5.3] Mail : guillemets qui causent des disparitions
    Par Sergejack dans le forum Langage
    Réponses: 4
    Dernier message: 25/06/2010, 12h30
  5. Réponses: 2
    Dernier message: 14/12/2006, 17h53

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