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 :

script create bd et problème d'accents [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 20
    Points : 12
    Points
    12
    Par défaut script create bd et problème d'accents
    Bonjour,

    voici mon code, j'essaye de crée un script pour automatiser l'import et la creation de bd avec des fichier sql.
    je me base donc sur ce sript.

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <?php
     
    /* Accepts a filename and imports the SQL script in it. 
    
       Returns: true if all is well 
                false if something is wrong 
                (error message is embedded in $errmsg) 
    
       One can also use mysql_error() if this function 
       returns an error. 
    
    */ 
     
    function mysql_import_file($filename, &$errmsg) 
    { 
       /* Read the file */ 
       $lines = file($filename); 
     
       if(!$lines) 
       { 
          $errmsg = "cannot open file $filename"; 
          return false; 
       } 
     
       $scriptfile = false; 
     
       /* Get rid of the comments and form one jumbo line */ 
       foreach($lines as $line) 
       { 
          $line = trim($line); 
     
          if(!ereg('^--', $line)) 
          { 
             $scriptfile.=" ".$line; 
          } 
       } 
     
       if(!$scriptfile) 
       { 
          $errmsg = "no text found in $filename"; 
          return false; 
       } 
     
       /* Split the jumbo line into smaller lines */ 
     
       $queries = explode(';', $scriptfile); 
     
       /* Run each line as a query */ 
     
       foreach($queries as $query) 
       { 
          $query = trim($query); 
          if($query == "") { continue; } 
          if(!mysql_query($query.';')) 
          { 
             $errmsg = "query ".$query." failed"; 
             return false; 
          } 
       } 
     
       /* All is well */ 
       return true; 
    } 
     
    /* Installs a DB with a given name with the help of a given 
       .sql file 
    
       Returns: true if all is well 
           false if something is wrong 
                (error message is embedded in $errmsg) 
    
       One can also use mysql_error() if this function 
       returns an error. 
    
    */ 
     
    function mysql_install_db($dbname, $dbsqlfile, &$errmsg) 
    { 
       $result = true; 
     
       if(!mysql_select_db($dbname)) 
       { 
         $result = mysql_query("CREATE DATABASE $dbname"); 
         if(!$result) 
         { 
            $errmsg = "could not create [$dbname] db in mysql"; 
            return false; 
         } 
         $result = mysql_select_db($dbname); 
       } 
     
       if(!$result) 
       { 
          $errmsg = "could not select [$dbname] database in mysql";
          return false; 
       } 
     
       $result = mysql_import_file($dbsqlfile, $errmsg); 
     
       return $result; 
    } 
     
    $link = mysql_connect ( "127.0.0.1", "root", "");  
     
    if(mysql_install_db("toto", "02-06-2010_S1_fr_FR.sql", $errmsg))  
    {  
       echo "Success!!";  
    }else  
    {  
      echo "failure: ".$errmsg."<br/>".mysql_error();  
    }  
     
    ?>
    Mon soucis est celui-ci, le script se charge bien, mais au moment de charger mon fichier sql, j'ai ce message d'erreur du à un accent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    failure: query INSERT INTO `BDDJoueurs` VALUES (1,'Amrac',8,30,'test','chef',57,245,0,0,82),(12,'Marin',15,30,'CFI','chef',107,197,0,0,2200000),(18,'blyss',6,30,'CDF','Le Chef Historique',84,135,0,0,8345),(304,'TKSAS',25,21,'CDF','Le Prê failed
    Erreur de syntaxe près de ''Le Prê' à la ligne 1
    Savez vous comment je peux faire pour changer ca ?

  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
    Je dirais que tu n'as pas "Prê" mais "Pr&ecirc;".
    Du coup le script decoupe le ;
    Tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     foreach($lines as $line) 
       { 
          $line = trim($line); 
          $line = html_entity_decode($line);

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    C'est génial, j'avais trouvé ce morceau de code ailleurs, mais je ne su ou le placer...

    Merci à toi, c'est parfait, ma création de base et mon import se font parfaitement.

    Maintenant il ne me reste plus qu'à automatiser tout cela pour créer les 100éne de Bdd dont j'ai besoins.

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

Discussions similaires

  1. Problème d'accent dans le script java
    Par anaice dans le forum Pentaho
    Réponses: 1
    Dernier message: 06/11/2009, 15h12
  2. Problème d'accents entre 2 scripts (dont 1 jpGraph)
    Par nicobest dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2007, 09h41
  3. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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