Problème caractère d'échappement dans requete sql

cs_nicoulas Messages postés 21 Date d'inscription dimanche 8 février 2004 Statut Membre Dernière intervention 4 mars 2011 - 4 mars 2011 à 10:01
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 5 mars 2011 à 09:30
Bonjour,

Je coince sur un point concernant une requête SQL. Je m'explique:
J'ajoute des conditions sql dans une variable que j'ajoute à ma requête en fonction des paramètres reçus.

Par exemple
<cfif #qNatOrdinaire# EQ 1 AND #qNatAutonome# EQ 0>
<cfset req = req & " AND (nature like 'ordinaire')">
</cfif>

Quand je rajoute la variable dans ma requète de cette façon
<cfquery name="regies" datasource="XXX">
SELECT *
FROM viewWebRegies2010
where (1 = 1) #req#
</cfquery>


il double les quotes et effectue la requete suivante

SELECT *
FROM viewWebRegies2010
where (1 = 1) AND (nature like ''ordinaire'')

ce qui renvoie evidemment une erreur SQL

Savez-vous comment faire pour ne passer outre ce problème.

Un tout grand merci d'avance pour votre réponse

Nicolas

1 réponse

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
5 mars 2011 à 09:30
Bonjour,

problème souvent rencontré, pour le résoudre utilises la fonction PreserveSingleQuote().


<cfquery name="regies" datasource="XXX">
SELECT *
FROM viewWebRegies2010
where (1 = 1) #PreserveSingleQuote(req)#
</cfquery>

Nickadele
non, ma belle ne s'appel pas Adèle
Mon Blog
0
Rejoignez-nous