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 :

Problème de quotes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut Problème de quotes
    Bonjour!!!!
    Je suis sur un projet de facturation trés important où je dois migrer une base access vers une base mysql.
    J'ai utilisé le programme MySQL Migration ToolKit. Aucun problème sauf que les caractères spéciaux tel que les simples quotes ne sont pas convertis donc cela pose problème au niveau de l'affichage. (Il manque une partie des données)
    Existe-t-il une solution pour résoudre mon problème???

    PS: Il y a beaucoup de données donc je ne peux pas convertir manuellement les caractères spéciaux

  2. #2
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    Existe-t-il un script qui permettrait de convertir les caractères spéciaux de chaque table dans une base de données mysql???

  3. #3
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    J'ai réussi à faire ce que je voulez faire et voici le code :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    $serveur = "localhost";
    $user = "root";
    $pwd = "";
    $bd = "test";
    $conx = mysql_connect($serveur,$user,$pwd);
    mysql_select_db($bd,$conx);
    set_time_limit(0);
    // Liste les tables
    $listtable = mysql_list_tables($bd);
    while ($ntable=mysql_fetch_array($listtable))
    {
       $nomtable= $ntable[0];
       $sql = "SELECT * FROM `$nomtable`";
       $req = mysql_query($sql);
       // Liste de tous les champs
       $i=0;
       $pkey = "";
       $chp ="";
       while ($i < mysql_num_fields($req)) {
             $resf=mysql_fetch_field($req,$i);
             // Liste de toutes les clés primaires et des champs non numériques
             if ($resf->primary_key==1){
                if (!empty($pkey))
                   $pkey .= "|";
                $pkey .= $resf->name  ;
             }
             if ($resf->numeric==0){
                if (!empty($chp))
                   $chp .= "|";
                $chp .=  $resf->name ;
             }
             $i++;
       }
       if ((!empty($chp)) && (!empty($pkey))){
          // Création de la requete de modification
          $clepri = explode("|",$pkey);
          $chp2=explode("|",$chp);
          while($res=mysql_fetch_array($req)){
              $reqU="UPDATE `$nomtable` SET ";
              $reqW= "`$clepri[0]`='" . $res[$clepri[0]] . "'";
              if (count($clepri)>1){
                 $nbrechp= count($clepri);
                 for ($i=1;$i<$nbrechp;$i++)
                     $reqW.= ",`$clepri[$i]`='" . $res[$clepri[$i]] . "'";
              }
              $reqS = "`$chp2[0]`='" . htmlentities($res[$chp2[0]], ENT_QUOTES) . "'";
              if (count($chp2)>1){
                 $nbrechp= count($chp2);
                 for ($i=1;$i<$nbrechp;$i++)
                     $reqS.= ",`$chp2[$i]`='" . htmlentities($res[$chp2[$i]], ENT_QUOTES) . "'";
              }
              $reqU .= $reqS . " WHERE " . $reqW;
              mysql_query($reqU);
          }
       }
       echo $nomtable . " fait<br />";
    }
    ?>
    Ce script convertit les caractères spéciaux tel que les simple quote ou les accents ... dans tous les champs d'une base de données MySQL avec la fonction htmlentities.

    Le script prend en compte s'il y a plusieurs clés primaires mais s'il y en a aucune dans une table il passera à la table suivante.
    Il prend aussi en compte seulement les champs qui ne sont pas numériques.
    Si des personnes pouvaient me conseiller pour réduire le temps d'execution.

Discussions similaires

  1. [Système] Problème de quote
    Par mikebranque dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2006, 17h38
  2. Problème de quote avec XPath
    Par fadjerx dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/03/2006, 14h45
  3. [JS] Problème de quotes pour enregistrer un formulaire.
    Par polnioumane dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/10/2005, 17h04
  4. Problème de quotes sous PostGre
    Par Philhz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/07/2004, 13h03
  5. Problème de quote
    Par kennini dans le forum ASP
    Réponses: 4
    Dernier message: 20/11/2003, 09h40

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