sql et access

Eléphant du PHP | 171 Messages

21 mars 2006, 19:15

Bonjour à tous,
J'excécute la requête sql suivante sur une base access
$requete = "SELECT * FROM Table WHERE Valeur = '" . $valeur . "'";
La variable $valeur contient du texte avec apostrophes, exemple:
$valeur ="voiture d'occasion";

ma requête ne passe pas à cause des apostrophes, j'ai essayé

Code : Tout sélectionner

$valeur = mysql_escape_string($valeur)
ça rajoute des \ avant les ' mais access n'aime pas non plus. que dois-je faire?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 mars 2006, 20:50

Salut,

Essaie en doublant les apostrophes:
$valeur = str_replace("'","''"$valeur);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

21 mars 2006, 21:55

que dois-je faire?
Ben en premier, arrêter d'utiliser des fonctions MySQL sur des requêtes Access :lol:

Comme l'a dit Truc, doubler les apostrophes devrait marcher, mais si tu te sens brave je te recommande de t'intéresser à odbc_prepare() pour des raisons de clarté et/ou sécurité.

Invité
Invité n'ayant pas de compte PHPfrance

22 mars 2006, 09:37

j'ai essayé ereg_replace, ça ne marche pas. ctte foncition est-elle équivalente à str_replace?

Eléphant du PHP | 63 Messages

27 mars 2006, 17:51

salut
il faut mieux faire la correction de ces caracteres speciaux lors de la lecture de ton fichier MDB

et donc tu peux utiliser la fonction suivante : addslashes

cela doit resoudre tes problemes

a+

hello

PS : Plus d'informations sur l'ODBC et ACCESS... www.odbcphp.fr.st