Probléme avec ' dans une requette

Mammouth du PHP | 620 Messages

31 mai 2010, 11:40

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 ?

ViPHP
ViPHP | 5462 Messages

31 mai 2010, 11:42

faut échapper les caractères avec mysql_real_escape_string :wink:

Mammouth du PHP | 620 Messages

31 mai 2010, 11:48

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".
Modifié en dernier par fabrice88250 le 31 mai 2010, 11:54, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

31 mai 2010, 11:51

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:

Mammouth du PHP | 620 Messages

31 mai 2010, 11:57

oui peut etre mais je ne peu pas changer pour Mysqli.
existe il une autre solution ?

ViPHP
ViPHP | 5462 Messages

31 mai 2010, 13:11

oui peut etre mais je ne peu pas changer pour Mysqli.
existe il une autre solution ?
pourquoi tu peux pas ?

Mammouth du PHP | 620 Messages

31 mai 2010, 15:45

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.

ViPHP
ViPHP | 5462 Messages

31 mai 2010, 16:32

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)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

31 mai 2010, 22:48

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 ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 620 Messages

01 juin 2010, 13:51

si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4

ViPHP
ViPHP | 5462 Messages

01 juin 2010, 13:53

si je fait un echo requete j'ai juste ça qui s'affiche : ressource id 4
pourquoi tu fais un echo requete ?

Eléphant du PHP | 314 Messages

01 juin 2010, 13:55

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'"
Cordialement,
Julien - http://laravel.fr/

Mammouth du PHP | 672 Messages

01 juin 2010, 13:56

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());