Page 1 sur 1

Caractères d'échappement et mySQL

Posté : 15 sept. 2009, 15:37
par todriver
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

Re: Caractères d'échappement et mySQL

Posté : 15 sept. 2009, 16:00
par thehawk
regarde du coté de la fonction php mysql_real_escape_string()

bye hawk

Re: Caractères d'échappement et mySQL

Posté : 15 sept. 2009, 16:54
par todriver
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

Posté : 15 sept. 2009, 17:02
par thehawk
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

Posté : 15 sept. 2009, 17:17
par todriver
Ok, ça fonctionne.

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

Encore merci.

Bye.

Re: Caractères d'échappement et mySQL

Posté : 15 sept. 2009, 17:19
par dunbar
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.