Caractères d'échappement et mySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Caractères d'échappement et mySQL

Re: Caractères d'échappement et mySQL

par dunbar » 15 sept. 2009, 17:19

Salut,

La fonction mysql_real_escape_string() ajoute automatiquement un / (slash) aux caractères spéciaux.
exemple dans ton cas le mot l'oiseau serat enregistrer l\'oiseau.
De plus tu dois prendre comme habitude de toujours utiliser cette fonction quand tu enregistre des données en base.

Re: Caractères d'échappement et mySQL

par todriver » 15 sept. 2009, 17:17

Ok, ça fonctionne.

Merci beaucoup, je commençais à désespérer.

Encore merci.

Bye.

Re: Caractères d'échappement et mySQL

par thehawk » 15 sept. 2009, 17:02

Comme ceci :
mysql_query("UPDATE liste_maisons SET photo_1='".mysql_real_escape_string($nom)."' WHERE numero = 1 "); 
Après tu dois faire :
$nom = 'l\'oiseau';

Bye Hawk

Re: Caractères d'échappement et mySQL

par todriver » 15 sept. 2009, 16:54

Merci mais je ne vois pas comment l'utiliser.
Où dois-je insérer ça dans mon code et comment?

Re: Caractères d'échappement et mySQL

par thehawk » 15 sept. 2009, 16:00

regarde du coté de la fonction php mysql_real_escape_string()

bye hawk

Caractères d'échappement et mySQL

par todriver » 15 sept. 2009, 15:37

Bonjour à tous,

je suis débutant en php et je me heurte à un problème simple mais que je n'arrive pas à résoudre.
Voici un bout de mon code et je vous expose le problème ensuite :

$nom = 'l'oiseau'
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('immo_base', $base) ;
mysql_query("SET NAMES UTF8");
mysql_query("UPDATE liste_maisons SET photo_1='$nom' WHERE numero = 1 "); 
J'ai une base de données mySQL appelée immo_base.
En fait le code fonctionne mais le contenu de la variable $nom ne veut pas s'inscrire dans ma base mySQL.
Si j'inscris 'un oiseau', cela va s'inscrire dans la base mais si j'inscris 'l'oiseau', rien ne s'inscrit.
Le problème est donc lié à l'apostrophe que je n'arrive pas à échapper.
J'ai essayé l'antislash comme caractère d'échappement mais l'antislash ne fonctionne pas.
Quelqu'un peut-il m'aider?

Merci à tous.
J'en conclus donc que le problème vient du caractère du caractère d'échappement à utiliser