Page 1 sur 1

Probléme avec ' dans une requette

Posté : 31 mai 2010, 11:40
par fabrice88250
Bonjour,
j'ai un petit soucis lorsque j'execute une requette avec un where qui comprend un apostrophe
Ma requette est simple :
$requete = mysql_query("SELECT * FROM IWmag WHERE nom='$nom'"); 
Si $nom est par exemple : "Une journée en forêt" pas de soucis sa fonctionne et j'ai bien mes donées qui s'affichent.
Si $nom est par exemple : "l'extraordinaire histoire de lucie" sa ne fonctionne plus.

Comment est il possible de modifier la requette afin de ne plusavoir se probléme d'apostroph ?

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 11:42
par stealth35
faut échapper les caractères avec mysql_real_escape_string :wink:

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 11:48
par fabrice88250
Ah oui merci beaucoup.
Effectivement mysql_real_escape_string est la solution.
Merci Beaucoup !

J'ai un autre petit soucis mais maintenant avec &
si j'ai par exemple "Bleu & gris" ma requette ne fonctionne pas alors que "bleu et gris fonctionne".

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 11:51
par stealth35
Ah oui merci beaucoup.
Effectivement mysql_real_escape_string est la solution.
Merci Beaucoup !

J'ai un autre petit soucis mais maintenant avec &
si j'ai par exemple Bleu & gris ma requette ne fonctionne pas.
tu n'aurais pas se genre de problème en requête préparé avec mysqli, ou PDO :wink:

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 11:57
par fabrice88250
oui peut etre mais je ne peu pas changer pour Mysqli.
existe il une autre solution ?

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 13:11
par stealth35
oui peut etre mais je ne peu pas changer pour Mysqli.
existe il une autre solution ?
pourquoi tu peux pas ?

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 15:45
par fabrice88250
Ne faut il pas avoir accès au fichier de configuration de php ?
je suis hebergé chez 1 and 1.
Ne devrai-je pas modifier mes codes par la suite ?
Enfin bref je sais pas car je n'ai jamais utilisé mysqli.

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 16:32
par stealth35
Ne faut il pas avoir accès au fichier de configuration de php ?
je suis hebergé chez 1 and 1.
non, regarde dans ton phpinfo si t'as mysqli, et ta version de php
Ne devrai-je pas modifier mes codes par la suite ?
Enfin bref je sais pas car je n'ai jamais utilisé mysqli.
y'aura pas grand chose a modifié, par contre t'aura l'avantage d'avoir un code a jour, avec un cycle de vie rallongé et plus rapide :wink:
(faut en profité surtout que en procédural ca change pas trop)

Re: Probléme avec ' dans une requette

Posté : 31 mai 2010, 22:48
par Ryle
J'ai un autre petit soucis mais maintenant avec &
si j'ai par exemple "Bleu & gris" ma requette ne fonctionne pas alors que "bleu et gris fonctionne".
En principe le "&" ne devrait pas poser de problème dans une requête sous mysql... Peux tu afficher la requête générée, et regarder avec mysql_error() s'il y a des messages d'erreur ?

Re: Probléme avec ' dans une requette

Posté : 01 juin 2010, 13:51
par fabrice88250
si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4

Re: Probléme avec ' dans une requette

Posté : 01 juin 2010, 13:53
par stealth35
si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4
pourquoi tu fais un echo requete ?

Re: Probléme avec ' dans une requette

Posté : 01 juin 2010, 13:55
par AoSiX
si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4
Ce n'est pas de $requete que tu dois faire un echo mais de "SELECT * FROM IWmag WHERE nom='$nom'"

Re: Probléme avec ' dans une requette

Posté : 01 juin 2010, 13:56
par macgawel
si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4
Il ne faut pas afficher le résultat de la requête (après passage par mysql_query()), mais la requête :
$requete = "SELECT * FROM matable WHERE conditions";
echo "requete : $requete<br />";
$resultat = mysql_query ( $requete) or die ("Erreur sur la requête.<br />$requete<br />".mysql_error());