2010-11-13 7 views
1

J'ai un problème inhabituel (cela est lié à Browser displays � instead of ´)Rechercher et remplacer dans la base de données MySQL?

j'avais les paramètres d'encodage de caractères ne correspondent pas sur mon serveur (UTF-8) et d'application (ISO-8859-1), donc une troisième personne chargée d'entrer espagnol traductions, entré les mots correctement à sa fin, mais ils ne sont pas enregistrés correctement dans la base de données.

J'ai ensuite corrigé le problème et le serveur est maintenant ISO-8859-1. [Je mis

default_charset = "iso-8859-1" 

dans php.ini]

Je vois un modèle dans ce qui est dans le système, par exemple, le message suivant apparaît sur le système:

Nombre de la organización* 

Cela doit être:

Nombre de la organización* 

Par exemple, je dois rechercher et remplacer '³' par 'ó'.

Comment puis-je le faire pour une table entière (tous les champs)? (il y aura également d'autres corrections)

+2

Il est préférable de tout paramétrer sur UTF-8 plutôt que sur ISO-8859-1. – JAL

+0

@alex - pourquoi est-ce? – siliconpi

+0

@Alex JL: Bon conseil. Cependant, la question se rapporte à la recherche et au remplacement de certains textes de toutes les lignes d'un champ (ou plusieurs champs) dans une table. –

Répondre

2

Utilisez la fonction de remplacement. Exemple simple:

SELECT REPLACE('www.mysql.com', 'w', 'Ww'); 

Résultat: « WwWwWw.mysql.com »

Maintenant, si vous avez une table appelée Foo et que vous voulez remplacer ces caractères dans un champ appelé barre, vous pouvez effectuer les opérations suivantes :

update Foo set bar = Replace(bar, 'ó', 'ó'); 

Effectuez cela pour tous les champs affectés et le problème est résolu. Cordialement, Lajos Arpad.

+0

semble que ça va marcher - merci! – siliconpi

+0

De rien. –

Questions connexes