begin process at 2012 05 27 22:27:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > CONVERSION DES CARACTÈRES SPÉCIAUX DANS UNE BASE DE DONNÉES MYSQL

CONVERSION DES CARACTÈRES SPÉCIAUX DANS UNE BASE DE DONNÉES MYSQL


 Description

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.

Source

  • <?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 />";
  • }
  • ?>
<?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 />";
}
?>

 Conclusion

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.


 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

 Sources en rapport avec celle ci

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
Source avec Zip CLASS PHP :: REQUÊTES MYSQL par devgoneti
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry

Commentaires et avis

Commentaire de oli14000 le 04/06/2007 14:03:15

Bonjour,

tout d'abord bravo pour vos recherche en PHP, moi, je debute en la matière...
Mais l'entraide est précieuse. Peut etre trouverez vous la reponse dans la commande stream_set_timeout() à utiliser pour déterminer une valeur de délai d'attente lecture/ecriture selon les cas,ici par exemple

stream_set_timeout($[],0,50000)...à organiser dans une boucle mais je ne m'y connais pas assez, j'espère avoir été de bon conseil

au revoir!!



 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Regex et caractères spéciaux [ par Totofweb ] BonjourJ'ai une variable, $texte. Dans celle-ci, je dois tester si elle contient [couleur=#123456] où 123465 est un nombre entier de 6 chiffres.J'ai e Caractères spéciaux, url et encodage [ par bigflo ] Salut,Voici mon problème, en php, je fais un listing d'un répertoire. J'affiche donc par moment des liens vers des fichiers. mais lorsque le nom du fi Prob avec les caractères spéciaux + php [ par Gulius ] Voila en fait j&#180;ai remarqué que bcp de caractères spéciaux ne peuvent pas être insérés tel quel dans une base de donnée. Il faut donc passé par d Utilisation de eregi() pour détecter des caractères spéciaux [ par Eric25 ] Bonjour,Je souhaite v&#233;rifier qu'une cha&#238;ne ne comporte de caract&#232;res sp&#233;ciaux. Pour ce faire, j'utilise la fonction eregi.Malheure caractères spéciaux pour fichiers et URL [ par jyhes ] Bonjour, Je souhaite g&#233;n&#233;rer un fichier en le nommant &#224; l'aide du contenu d'un champ d'une BD. Forc&#233;ment,&nbsp; il faut g&#233;re formulaire Modifier BDD Mysql [ par ombrey20 ] j suis debutant en php,j'ai deja creer un formulaire ajout d'enregistrement dans une BDD Mysql via php.. et j veux faire un autre pour la modification problèmes caractères spéciaux. [ par masseur ] Salut.Dans un de mes scripts je fait ceciecho "$url = $_GET['url']"; sachant que l'url que je passe dans mon navigateur est celle ci;http://news.searc effacer - modifier news [ par picogunsy ] Bonjour &#224; tous, J'aimerai simplement savoir comment &#224; partir de mon code ci-dessous faire un lien sur les deux mots en rouge dans mon code MySQL et Multilingue [ par WhiteDwarf ] Salut, je reviens avec mes problèmes de gestion multilangue Alors voila le problème est simple, je récupère nom, prénom, mot de passe... dans un formu modifier format d'une date extraite d'une base SQL [ par titsuisse ] Bonjour,Je pense que ce point a d&#233;j&#224; du &#234;tre aborder cependant je n'ai rien trouv&#233; qui me satisfasse (en faite rien qui marche).Vo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales