|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2012 Messages : 4 ![]() |
Bonjour à tous,
n'étant pas une lumière en informatique mais un simple internaute qui essaye de partager ce qu'il sait dans un domaine particulier, je suis confronté à un souci de taille. Je suis parvenu à migrer (apparemment c'est comme cela que ça s'appelle?), un forum Kunena vers SMF (non sans mal). Après avoir fait quelques modifs, tout semble OK sauf un paramètre essentiel que je n'arrive pas à corriger. Tous les caractères apostrophe ('), ont été remplacés par \\\. J'ai essayé de "bidouiller" (quand on y connait rien et que ça n'est pas son métier je pense que ça ne peut pas s'appeler autrement lol, je suis toujours au point mort. En cherchant, on m'a dit de changer l'encodage de la base de données (elle est en utf8_swedish_ci). Comment pourrais-je faire pour que les \\\ soient tous remplacés par le caractère apostrophe (') dans les différentes catégories mais aussi les posts du forum, sans que je me tappe les près de 10000 messages à la main ?? Je m'en remets à des pros car je crois bien avoir atteint mes limites et être arrivé au bout du bout. Encore merci à vous et bonne soirée. Cordialement |
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Donne la structure de la table dans laquelle tu vois ce phénomène et dis dans quelle colonne avec un exemple de données.
D'une manière générale, il va falloir que tu fasses une requête UPDATE en utilisant REPLACE : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2012 Messages : 4 ![]() |
Bonsoir CinePhil et avant tout merci pour ton aide
Voici les informations dont tu as besoin (j’espère que je ne vais pas me planter): Nom de la table: phpbb3_posts Les colonnes contenant les caractères comme (\') au lieu de simplement (') ou (\\\) au lieu de (') sont: post_subject post_text Encore un grand merci à toi pour le temps que tu consacres à mon problème. Bonne soirée à toi. Cordialement. |
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
Petit test...
J'ai inséré les valeurs suivantes dans une table de test : 1) Colonne titre : L'apostrophe précédée d'un antislash : \' 2) Colonne resume : Et trois antislashes + une apostrophe : \\\' Dans phpMyAdmin, les valeurs s'affichent correctement. Code :
=> L'antislash a été supprimé. Même requête sur la colonne resume... Résultat : Et trois antislashes + une apostrophe : ' => Toutes les antislashes ont disparu. Mais dans un message phpBB, tu peux avoir des balises fermantes de ce style : [\balisefermante] et là il ne faut pas supprimer l'antislash ! Donc je te conseillerais cette requête : Code :
Encore une fois, sauvegarde avant d'exécuter ! Tu peux aussi faire un SELECT avant pour vérifier ce qui va être effectué comme opération.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
||||
|
00
|
|
|
#5 | ||||
|
Invité de passage
![]() Inscription : décembre 2012 Messages : 4 ![]() |
Bonsoir Cinephil,
Désolé de te répondre aussi tard (j'ai dû me consacrer à d'autres activités moins passionnantes et ça m'a mis en retard sur mon problème avec MySql). En testant tes bons conseils, ça m'a beaucoup aidé et j'ai pu constater que ta solution marchait parfaitement bien. Par contre j'aurais encore une dernière question à te poser: Lorsque j'exécute la requete suivante: Code :
Code :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\'')' at line 2 Aurais-tu une idée concernant ce problème (j'ai cherché de mon coté mais sans succès malheureusement). Encore merci pour tou et je te souhaite de bonnes fêtes de fin d'année ! |
||||
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Il te manque un antislash dans ce qu'il faut remplacer :
Code :
3ème antislash échappe le second antislash. 5ème antislash échappe l'apostrophe. Le tout est remplacé par une apostrophe.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
||
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : décembre 2012 Messages : 4 ![]() |
Hello Cinephil,
merci à toi pour totues ces explications elles m'ont permise de résoudre ce problème d'anti-slash qui me pourrissaient la vie (et en plus j'ai appris plein de choses grace à toi) !! Par contre j'aurais une dernière question à te poser: je suis passé à la seconde étape de ma migration et j'ai un problème qui ressemble trait pour trait à celui que je viens de rencontrer. Mes caractères accentués ont été remplacés par des caractères du style é ou autre. J'ai bien entendu utiliser les commandes que tu m'avais apprise avec par exemple la commande suivante (pour changer les é en é -e accent aigu). Code :
Aurais-tu une idée d'ou cela pourrait venir (ou encore peut-être une façon globale de traiter mon souci) ? Encore merci pour toute ton aide et bonne année avec un peu d'avance ! |
||
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Ça c'est un problème de collation de caractères.
Si tu es sur de la correspondance de chaque signe, tu peux procéder en masse comme précédemment mais cette fois tu n'as pas besoin des antislashes. Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
||
|
00
|
Copyright © 2000-2013 - www.developpez.com