Un petit probleme de caractere \

Signaler
Messages postés
6
Date d'inscription
jeudi 14 septembre 2006
Statut
Membre
Dernière intervention
29 juin 2007
-
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010
-
bonjour,

aprés plusieurs modifs de mon site et je l'avoue quelques oublis de addslashes, certaines cellules de ma base contiennent  le fameux caractere ascii 92 \.
je souhaiterai pouvoir nettoyer cette base afin de supprimer le caractère \ se trouvant régulièrement devant les apostrophes.
j'ai essayé via une requête sql  de les identifier à la mano mais sql n'arrive pas à les récupérer.

ma question est donc : quelqu'un aurait il une petite mani php me permettant de nettoyer cette base.

d'avance merci.

6 réponses

Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

stripslashes ??
Messages postés
6
Date d'inscription
jeudi 14 septembre 2006
Statut
Membre
Dernière intervention
29 juin 2007

j'y avais pensé mais le problême est que le stripslashes est une commande d'affichage. il ne peut pas être intégré dans une requête mysql...
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

tu peux faire un script qui parcours automatiquement toutes tes tables de ta base de données et pour chaque enregistrement récupère la valeur, la mouline dans stripslash et la ré-enregistre.
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

La commande mysql
SHOW TABLES
permet de récupérer la liste des tables;
ma commande
SHOW COLUMNS FROM `matable`
permet de récupérer les colonnes de ta table
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

Aller, je t'aide un peu :

function liste_tables()
{
include("variables.php");
$retour=array();
$requete = "SHOW TABLES ";
$resultat=mysql_db_query(SQL_BASE,$requete,$bp);
$i=0;
while($tmp=mysql_fetch_array($resultat))
{
$retour[$i]=$tmp[0];
$i++;
}
return $retour;
}

function liste_champs($table)
{
include("variables.php");
$retour=array();
$requete = "SHOW COLUMNS FROM `$table` ";
$resultat=mysql_db_query(SQL_BASE,$requete,$bp);
$i=0;
while($tmp=mysql_fetch_array($resultat))
{
$retour[$i]=$tmp[0];
$i++;
}
return $retour;
}

le fichier "variables .php" :
define("SQL_SERVEUR","localhost");
define("SQL_LOGIN","monogin");
define("SQL_MDP","monmotdepasse");
define("SQL_BASE","mabasededonnees");
$bp=mysql_connect(SQL_SERVEUR,SQL_LOGIN,SQL_MDP);
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010

il ne reste plus qu'à contruire une boucle qui en ayant récupéré les champs de chaque table va chercher tous les enregistrements, y applique un stripslashes() et réenregistre tout.