cybrnetik Posté 31 Mars 2007 Posté 31 Mars 2007 Bonjour, J'ai une base de donnes qui me pose problème puisque je desire modifier certains champs afin de rajouter un anti-slash devant tout lesguillemets qui existent. Pour cela, j'ai fait une petite page qui va me modifier ca j'affiche la valeur de la table avant et apres la modification avec ce code : for($i=0;$i<30;$i++){print '<strong>Avant l\'envoi</strong><br />'; $resultat = mysql_query(" SELECT id, texte FROM mabase WHERE id='".$i."'") or mysql_error();$donnees = mysql_fetch_array($resultat);$texte = addslashes($donnees['texte']);print $donnees['texte'].'<br /><br /><br /><br /><br /><strong>Une fois envoyé a la base de données </strong><br />'; mysql_query(" UPDATE mabase SET texte = '".$texte."' WHERE id='".$donnees['id']."'") or die(mysql_error()); //affichage des modif $resultat = mysql_query(" SELECT texte FROM mabase WHERE id='".$i."'") or mysql_error();$donnees = mysql_fetch_array($resultat);print $donnees['texte'].'<br /><br /><br />';} La modification est faite comme il faut et envoyé a la base de données seulement la base de donner ne garde pas les antislash . Comment cela ce fait ils ?
maximettb Posté 31 Mars 2007 Posté 31 Mars 2007 C'est entièrement logique, les caractères d'échappement sont supprimés dès l'insertion en BDD. Pour les garder dans ta base, il faut normalement faire un 2ème addslashes : $texte = addslashes(addslashes($donnees['texte']));
petit-ourson Posté 1 Avril 2007 Posté 1 Avril 2007 Il est recommandé d'utiliser mysql_escape_string au lieu de addslashes pour insérer des données en base.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant