Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1950 connectés 

  FORUM HardWare.fr
  Programmation

  MySQL: pb de "\"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MySQL: pb de "\"

n°75597
El_gringo
Posté le 26-11-2001 à 15:11:21  profilanswer
 

Voila, avec mySql, g le pb suivant:
Quand je fais un WHERE, ce con de mySql interprète les '\' comme des séquances d'échappement (de la même façon qu'en C). ce qui fait que par exemple, si dans la colone CLE de ma table TABLES, g un champ 'c:\test'. Pour retrouver cette ligne, je devrais faire:
Select * from TABLES Where CLE = 'c:\\test'
'\\' étant la séquence d'échappement qui veux dire '\'^pour mySql
est ce qu'il y aurai pas un moyen de désactiver cette option de mySql !???

mood
Publicité
Posté le 26-11-2001 à 15:11:21  profilanswer
 

n°75599
gizmo
Posté le 26-11-2001 à 15:14:43  profilanswer
 

non, y a pas moyen, mais si tu travaille en php, il y a des fontion qui font cette modif exprès pour toi.

n°75601
El_gringo
Posté le 26-11-2001 à 15:17:09  profilanswer
 

ouais, ms le pb est plus gros que ça:  
1- je suis pas en pHp
2- le progiciel sur lequel je bosse doit être standard, et pouvoir bosser avec SQLServer, tt comme avec MySql, et les autres... je peux donc même pas écrire une fonction qui doublerai les '\'...
 
t sur à 100% qu'y a pas moyen de désactiver ce putain de truc, ou c juste que t'as jammais trouvé comment faire !?

n°75607
gizmo
Posté le 26-11-2001 à 15:37:53  profilanswer
 

ben non, parce que le \ est un caractère d'échappement standard de SQL, donc tu auras le même problème quelque soit la DB que tu utilises.

n°75610
El_gringo
Posté le 26-11-2001 à 15:42:13  profilanswer
 

ha non... g jammais eu ce pb, pourtant nôtre progiciel bosse avec presque tous les serveurs de bases de données...

n°75616
gizmo
Posté le 26-11-2001 à 15:49:45  profilanswer
 

Citation :


In JDBC, strings containing SQL commands are just normal strings - the SQL is not parsed or interpreted by the Java compiler. So there is no special mechanism for dealing with special characters; if you need to use a quote (" ) within a Java string, you must escape it.  


 
Ca c'est pour le JDBC, mais c'est la même chose pour les autres drivers d'accès aux DB. Autrement dit, c'est que ton drivers d'accès aux autres DB parse les expression avant de les envoyer à la DB, mais par pour MySQL.

n°75632
El_gringo
Posté le 26-11-2001 à 15:58:56  profilanswer
 

gizmo a écrit a écrit :

Citation :


In JDBC, strings containing SQL commands are just normal strings - the SQL is not parsed or interpreted by the Java compiler. So there is no special mechanism for dealing with special characters; if you need to use a quote (" ) within a Java string, you must escape it.  


 
Ca c'est pour le JDBC, mais c'est la même chose pour les autres drivers d'accès aux DB. Autrement dit, c'est que ton drivers d'accès aux autres DB parse les expression avant de les envoyer à la DB, mais par pour MySQL.  




 
ouais, surement...
pfff, c chiant ça...

n°75844
wouatouwou​atou
Posté le 27-11-2001 à 01:18:26  profilanswer
 

Sous Oracle, l'option pour passer outre un caractère d'echappement est escape. Voici un exemple avec un like et le fameux symbol '%'.
 

Code :
  1. like '?%toto?\titi' escape '?'


 
Là, le like fonctionnera comme un = sur la chaîne '%toto\titi'
voilou... :D

n°75883
El_gringo
Posté le 27-11-2001 à 09:59:18  profilanswer
 

Merci, mais ça à pas l'air de marcher avec mySql...
alors j'me démerde en doublant les '\'. ce qui est con, c'est que, en plus, le like interprète à son niveau encore, les '\' comme caractères spéciaux. je dois donc quadrupler les`\`... un beau bordel, pour pas grand chose ! :(

n°75884
El_gringo
Posté le 27-11-2001 à 10:00:40  profilanswer
 

wouatouwouatou a écrit a écrit :

Sous Oracle, l'option pour passer outre un caractère d'echappement est escape. Voici un exemple avec un like et le fameux symbol '%'.
 

Code :
  1. like '?%toto?\titi' escape '?'


 
Là, le like fonctionnera comme un = sur la chaîne '%toto\titi'
voilou... :D  




 
d'ailleur à mon avis, l'exemple que tu m'as donné devrais plutot être  

Code :
  1. like '?%toto?\\titi' escape '?'


...non !? ou alors même ça c spécifique à mySQL ?

mood
Publicité
Posté le 27-11-2001 à 10:00:40  profilanswer
 

n°75910
Mara's dad
Yes I can !
Posté le 27-11-2001 à 11:36:46  profilanswer
 

D'après la DOC de MySql, t'as pas le choix :
http://www.mysql.com/doc/S/t/String_syntax.html


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°75913
El_gringo
Posté le 27-11-2001 à 11:52:56  profilanswer
 

Mara's dad a écrit a écrit :

D'après la DOC de MySql, t'as pas le choix :
http://www.mysql.com/doc/S/t/String_syntax.html  




 
ouais, j'avais lu la doc... et je suis d'accord avec toi pour dire qu'on peux pas passer à côté de ça !
Et que c con... les \ c qd même pas mal utilisé...
et je persiste, y a QUE MySql qui fait chier avec ça...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  MySQL: pb de "\"

 

Sujets relatifs
[PHP & MySQL ] Récupérer une var TEXT d'une table !Qestions Mysql/php + multimania
Comment convertir une base Access 2002 en base MySql ????[ PHP MyAdmin ] Exporter des données d'une table Mysql vers un fichier
Quelle version stable de apache,mysql et php svp!!!!MySQL - pilotes ODBC TDX MySQL : Besoin d'aide .....
[Mysql/php] problemes avec MyNews1.2Le MySQL est il si limité que ça ?
PHP <-> mysql echange de dates[MySQL] 1 ou plusieurs bases ?
Plus de sujets relatifs à : MySQL: pb de "\"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR