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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Trigger / caractère echappement ss MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trigger / caractère echappement ss MySQL

n°1707457
ketchupy
Posté le 25-03-2008 à 16:49:39  profilanswer
 

Yop,
 
J'essaie de monter une petite page php qui attaque une BD mysql qui récupère des logs de serveurs d'authentification (les serveurs écrivent dans la BD en passant par un lecteur ODBC).
Mon soucis : j'ai un champ qui correspond au nom d'utilisateur, celui-ci peut contenir le nom du domaine avec un anti-slash : DOMAINE\user
le problème c'est que dans ma table, l'anti-slash est supprimé ce qui pose des soucis d'affichage & de recherche ensuite.
 
J'essaie de voir si c'est possible de modifier ce champ pour "protéger" avec un trigger, mais visiblement la syntaxe ne lui va pas (est-ce qu'il n'y a que ça ??) :

Code :
  1. CREATE trigger slashadd AFTER INSERT ON `testpass` FOR EACH ROW
  2. BEGIN
  3. DECLARE user varchar(20);
  4. SET user = OLD.`User_Name`
  5. SET new.`User_Name` = REPLACE ( $user , 'domain', 'domain\\' )
  6. END


 
Si quelqu'un a une idée (avec ou sans trigger) pour pouvoir afficher ces login sans soucis je suis preneur !
 
Merci d'avance

mood
Publicité
Posté le 25-03-2008 à 16:49:39  profilanswer
 

n°1709024
MagicBuzz
Posté le 28-03-2008 à 02:49:07  profilanswer
 

interdire mysql d'utiliser les séquences d'échappement ANSI, et ne repose que sur le standard SQL.
 
le \ n'est pas du tout un caractère d'échappement dans la norme SQL, donc aucune raison pour que mysql te le zappe

n°1709090
ketchupy
Posté le 28-03-2008 à 09:40:21  profilanswer
 

Et petite question bête, comment fait on ceci ?
J'avais essayé de trouver/changer les caractères échappés par mySQL mais je n'ai pas trouvé la bonne option.  
Si tu as ça en stock (ou quelqu'un d'autre :)) je suis preneur..
 
Merci
 
[edit] : j'ai rajouter l'option 'ansi' dans my.ini, mais l'antislash est toujours echappé.
Pour info, je suis sous easyphp/windows, y a t-il un moyen de vérifier que le serveur mysql est bien lancer avec l'option ansi ?


Message édité par ketchupy le 28-03-2008 à 11:14:38
n°1709150
ketchupy
Posté le 28-03-2008 à 11:41:15  profilanswer
 

RESOLU !!  
 
Finalement, j'ai trouvé la bonne option à mettre dans le my.ini :
 

Code :
  1. [mysqld]
  2. set-variable=sql-mode=NO_BACKSLASH_ESCAPES


 
Et plus besoin de protéger les '\' :)
Merci bien :)


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

  Trigger / caractère echappement ss MySQL

 

Sujets relatifs
Deux fois la même sous requête sous MySQLMysql : format de date qui change apres reinstall :(
Intéraction Php (mysql) et Javascript[URGENT] Probleme de dump mysql
Pb requete sql avec MySQL 4.0.25Problème de base Mysql : delete ne marche pas
C++ et MySQL PB de LINKMySQL Replication 5 maitre et 1 esclave
[ASM+C] Chaines de caractereMySQL Replication Multi - maitre plus de 10 serveurs
Plus de sujets relatifs à : Trigger / caractère echappement ss MySQL


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