{MySQL} Aide sur requête REPLACE

Résolu/Fermé
Leghe - 9 juin 2010 à 21:42
 fiu - 9 juin 2010 à 22:49
Bonjour,

Je tente la requête suivante sur le champ d'une table, mais cela ne fonctionne pas. Je pense que je sois avoir des caractères interdits.
Comment détourner cela ?

UPDATE table
SET champ = replace(champ, 'NOM', '<a title="NOM" href="http://www.xxxx.com/37-nom">NOM</a>');

MERCI !!

3 réponses

Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
9 juin 2010 à 21:43
Bonjour,
Possiblement les guillemets double dans la code HTML. Essaye de les précéder d'un antislash \.
0
Non, je viens de tenter en modifiant la requête " par \", et toujours erreur...
0
Salut

Je viens de tester ton update dans ma ligne de commande MySQL et je n'ai eu aucune erreur :
mysql> select * from t2 where id='fiu';
+-----+------+-----------+
| id  | ext  | lib       |
+-----+------+-----------+
| fiu | PGMR | C'est OK! |
+-----+------+-----------+
1 row in set (0.00 sec)

mysql> update t2
    -> set lib = replace(lib
    -> , 'OK'
    -> , '<a title="OK" href="https://www.aaa.com/sorrypage/">OK</a>'
    -> ) where id = 'fiu';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from t2 where id='fiu';
+-----+------+-------------------------------------------------------------+
| id  | ext  | lib                                                         |
+-----+------+-------------------------------------------------------------+
| fiu | PGMR | C'est <a title="OK" href="https://www.aaa.com/sorrypage/">OK</a>! |
+-----+------+-------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

Donc ta requête est on ne peut plus valable. Reste maintenant à fouiller du côté de ton langage hôte (php ?) pour voir s'il ne triture pas ta requête avant de l'envoyer vers le moteur de données.
0