Page 1 sur 1
Grosse base de données, avec plein d'apostrophe
Posté : 24 janv. 2008, 10:04
par mariel83
Bonjour,
Je m'occupe d'un site depuis longtemps et je ne connaissais pas ce problème d'apostrophe.
Du coup, j'ai plus de 2000 champs contenant des textes, avec apostrophes.
J'ai essayé de les changer sous excel (en exportant la table) mais les textes sont trop gros pour utiliser la fonction remplacer.
Serait-il possible de faire une requète sql directement sur la base pour remplacer les ' en \' ?
Merci d'avance !
Posté : 24 janv. 2008, 10:34
par d0m
En quoi les apostrophes dans la base te pose t ils problème?
Ce sotn des apostrophes normales genre dans le mot aujourd'hui ou ce sont des apostrophes en trop qui n'auraient jamais du être là?
Posté : 24 janv. 2008, 10:39
par mariel83
Ce sont des apostrophes normales.
Aucun problème pour exporter la base mais impossible de la réintégrer ensuite.
Donc j'aimerais les supprimer.
Posté : 24 janv. 2008, 10:47
par d0m
Tu pourrais donner plus de détails, il y a peut être un autre moyen d'exporter.
Au passage c'est plutôt un problème base de données à moins que tu cherches un script PHP qui lie la base et remplace les apostrophes par des espaces blancs.
Dans ce cas il faut faire les requêtes SQL pour selectionner les champs,
traiter les chaines avec la fonction
str_replace
et remplacer les champs dans la base par la nouvelle chaine
Posté : 24 janv. 2008, 11:10
par Berzemus
Si tu es en mysql, pas besoin de passer par php, mysql intègre une fonction de remplacement.
Posté : 24 janv. 2008, 11:55
par mariel83
Oui, je suis en mysql. Comment s'utilise cette fonction de remplacement ?
On m'a dit qu'il ne fallait pas mettre d'apostrophe dans une base de donnée. donc j'essaie rectifier mes erreurs. Comme les champs sont séparés par des apostrophes, le fait qu'il y ait des apostrophes dans les champs posent problème.
Je vais regarder cette fonction str_replace. Merci.
Posté : 24 janv. 2008, 12:18
par Berzemus
Posté : 24 janv. 2008, 12:32
par mariel83
Ca fonctionne comme ça :
update textes set intro = replace(intro,"\'","\\'");
Merci !