Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MySQL et anti-slash

11 réponses
Avatar
alaune
Bonjour

je stocke des infos dans la base de données telles que :
" l\'abeille " (le anti-slash est ainsi enregistré dans la base de données)
par exemple. lorsque j'exécute une recherche sur l'abeille ou l\'abeille,
SQL ne me retourne aucun résultat.
Comment signifier le caractère spécial '\' en langage MySQL ? comment
formuler la requête ?

Merci...

--
A.

10 réponses

1 2
Avatar
P'tit Marcel
alaune wrote:
je stocke des infos dans la base de données telles que :
" l'abeille " (le anti-slash est ainsi enregistré dans la base de données)



Tu ne devrais pas t'arrêter en si bon chemin.

Pourquoi ne pas stocker l'@ßë¡1l¤ ?


:-)
Avatar
Daniel
"alaune" writes:

Bonjour

je stocke des infos dans la base de données telles que :
" l'abeille " (le anti-slash est ainsi enregistré dans la base de donn ées)
par exemple. lorsque j'exécute une recherche sur l'abeille ou l'abeill e,
SQL ne me retourne aucun résultat.
Comment signifier le caractère spécial '' en langage MySQL ? comment
formuler la requête ?



doubler le "" un l'abeille doit fonctionner


Merci...

--
A.







--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
alaune
"P'tit Marcel" a écrit dans le message de
news: 419a6f8e$0$4549$
alaune wrote:
> je stocke des infos dans la base de données telles que :
> " l'abeille " (le anti-slash est ainsi enregistré dans la base de


données)

Tu ne devrais pas t'arrêter en si bon chemin.

Pourquoi ne pas stocker l'@ßë¡1l¤ ?



Ce ne serait pas aussi intéressant puisqu'aucun de ces autres caractères
n'est assez spécial pour provoquer une requête erronée et...justifier une
intervention sur le forum !

:-)



:-P !
Avatar
alaune
doubler le "" un l'abeille doit fonctionner



ça doit, mais ça ne fonctionne pas.
alors bon quoi que faire ?

je peux aussi décider de soustraire de la requête le " ' " et tout ce qui le
précède, mais ça diminue fortement la pertinence de la recherche en cas de
mot composé par ex...
Avatar
Patrick Mevzek
Le Wed, 17 Nov 2004 10:35:02 +0100, alaune a écrit :

doubler le "" un l'abeille doit fonctionner



ça doit, mais ça ne fonctionne pas.
alors bon quoi que faire ?



A votre place, je corrigerai le code qui génère ces insertions, et je
corrigerai le contenu de la base.
En effet, il n'y a strictement aucune raison de mettre ' dans un SGBDR
quand vous voulez mettre '
Le provient très probablement d'un addslashes ou équivalent en PHP, et
le résultat n'a rien à faire dans le SGBDR.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
alaune
"Patrick Mevzek"

A votre place, je corrigerai le code qui génère ces insertions, et je
corrigerai le contenu de la base.
En effet, il n'y a strictement aucune raison de mettre ' dans un SGBDR
quand vous voulez mettre '
Le provient très probablement d'un addslashes ou équivalent en PHP, et
le résultat n'a rien à faire dans le SGBDR.



C'est bien sûr une solution envisagée. Mais aucune raison à priori pour que
des ne puissent être insérés dans des champs...
Sauf évidemment qu'il n'est pas de problème qu'une absence de solution ne
puisse résoudre.

en l'occurence, une solution boiteuse a été dénichée :
ajouter \, soit 5 pour l'execution de la requete. qu'on ne me demande
pas pourquoi, et je ne demanderai pas pourquoi il faudrait absolument
s'abstenir d'insérer de l'anti-slash ds la SGBDRrrrrrr !
;-)
merci à tous
Avatar
Patrick Mevzek
Le Wed, 17 Nov 2004 14:54:55 +0100, alaune a écrit :
A votre place, je corrigerai le code qui génère ces insertions, et je
corrigerai le contenu de la base.
En effet, il n'y a strictement aucune raison de mettre ' dans un SGBDR
quand vous voulez mettre '
Le provient très probablement d'un addslashes ou équivalent en PHP,
et le résultat n'a rien à faire dans le SGBDR.



C'est bien sûr une solution envisagée. Mais aucune raison à priori pour
que des ne puissent être insérés dans des champs...



Mais ont-il un sens ou sont-ils un artefacts ?
S'ils n'ont pas de sens, il n'ont rien à faire dans la base...

en l'occurence, une solution boiteuse a été dénichée : ajouter \,
soit 5 pour l'execution de la requete. qu'on ne me demande pas
pourquoi,



Probablement parce ca passe déjà par votre langage de programmation,
donc premier escape.
\ ->
Et quelque part il semble y avoir un deuxième escape, d'où
utilisé par le SGBDR.

Bref, à votre place je passerais vraiment du temps sur votre code, vous
avez des problèmes dedans ,et trouver des pseudos solutions maintenant ne
règlent pas les problèmes de fonds (votre application a du mal à
manipuler correctement certaines données).

et je ne demanderai pas pourquoi il faudrait absolument
s'abstenir d'insérer de l'anti-slash ds la SGBDRrrrrrr ! ;-)



Ca ne pose pas de problèmes particuliers.
C'est juste que dans votre cas il ne devrait pas être là pour commencer.
Son apparition n'est qu'une conséquence de votre problème plus profond,
et non une cause.

Et votre problème plus profond va aparaitre à d'autres endroits tôt ou
tard !

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
alaune
"Patrick Mevzek"

Mais ont-il un sens ou sont-ils un artefacts ?


les anti-slash ont un sens. ils sont gérés avec striplashes().
j'ai trouvé la même question sur d'autres forums... ce n'est donc pas une
exception...

S'ils n'ont pas de sens, il n'ont rien à faire dans la base...



dac.

Probablement parce ca passe déjà par votre langage de programmation,
donc premier escape.
\ ->



dac sur la logique

Et quelque part il semble y avoir un deuxième escape, d'où
utilisé par le SGBDR.

Bref, à votre place je passerais vraiment du temps sur votre code, vous
avez des problèmes dedans ,et trouver des pseudos solutions maintenant ne
règlent pas les problèmes de fonds (votre application a du mal à
manipuler correctement certaines données).



en fait ça marche maintenant assez parfaitement (à confirmer).

Ca ne pose pas de problèmes particuliers.
C'est juste que dans votre cas il ne devrait pas être là pour commencer.
Son apparition n'est qu'une conséquence de votre problème plus profond,
et non une cause.



non, non. ils sont volontairement insérés dans la base. d'autres
applications utilisent cette astuce.
ce que je ne comprends pas c'est qu'il n'existe pas de fonction ou de moyen,
il est vrai plus 'propre' que \, d'effectuer la requête sur
l'abeille....


bonne journée et merci encore.
Avatar
Patrick Mevzek
Le Thu, 18 Nov 2004 11:18:06 +0100, alaune a écrit :
Mais ont-il un sens ou sont-ils un artefacts ?


les anti-slash ont un sens.



Je continue de penser que non.
C'est un artefact, venant du web et de votre langage de programmation.
Je doute que ce soit
l'abeille
qui vous intéresse comme donnée, j'imagine que c'est plutôt
l'abeille

Ca ne pose pas de problèmes particuliers. C'est juste que dans votre
cas il ne devrait pas être là pour commencer. Son apparition n'est
qu'une conséquence de votre problème plus profond, et non une cause.



non, non. ils sont volontairement insérés dans la base. d'autres
applications utilisent cette astuce.



Cela vous fait donc plusieurs applications à corriger, bon courage.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
Th. Boudet
alaune wrote:

non, non. ils sont volontairement insérés dans la base. d'autres
applications utilisent cette astuce.



J'avoue ne pas comprendre l'astuce.
1 2