PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-12-2011 09:16:36

tropicalmadness
Membre
Inscription : 07-12-2011
Messages : 3

Sauvegarde base de données

Bonjour,

Les champs de ma base sont en latin1_swedish_ci mais les données contenues dans la base sont en utf-8.
Résultat, quand je veux sauvegarder la base, les caractères accentués sont transformés en é dans le dump.

J'ai du mal à croire que je puisse être le seul dans ce cas, mais j'ai beau fouiller, je ne parviens pas à trouver une solution !

Si quelqu'un sait comment résoudre ce problème, ça m'aiderait beaucoup...

Hors ligne

#2 07-12-2011 16:56:06

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Sauvegarde base de données

Bonjour,

1) soit tu changes la collation générale de ta base de données et tu utilises la collation par défaut dans la définition de tes tables
2) soit tu changes la collation de tes tables là où tu en as besoin avec un alter table
3) soit tu crées tes tables avec la bonne collation directement.

Ensuite tu peux importer tes données dans tes tables en utf8


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 07-12-2011 17:23:36

tropicalmadness
Membre
Inscription : 07-12-2011
Messages : 3

Re : Sauvegarde base de données

Bonjour,

Merci pour ton aide.

En fait, ce qui est étrange, c'est que bien que les caractères soient transformés dans PHPMyAdmin et dans le dump, tout fonctionne bien au niveau du site !

Est-ce que c'est un problème de laisser comme c'est ?
Je dois dire que je reste un peu perdu.

Dernière modification par tropicalmadness (07-12-2011 17:23:49)

Hors ligne

#4 07-12-2011 22:42:33

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Sauvegarde base de données

Bonsoir,

Oui parfois pour certains le hasard fait bien les choses wink
Pour répondre à ta question, non ce n'est pas un problème, mais si tu veux mon avis, vaut mieux maîtriser ce que l'on a à gérer au plus tôt, car plus on attends, plus quand ça nous lâche on est d'autant plus dans la m....

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 13-12-2011 14:36:12

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Sauvegarde base de données

Bonjour,

En fait tu travailles partout en UTF8 visiblement sauf dans tes tables qui ont une autre collation. Donc quand tu stockes du texte à l'intérieur, le texte encodé en UTF8 est stocké en UTF8 dans une table qui est définie dans une autre collation qui visiblement ne crée pas de déperdition de données par rapport à ton choix. Donc du coup le dump ne te rends pas ce que tu y mets. Par contre quand tu récupères tes données, comme tout est en UTF8 tu retrouves les données dans leur état initial à l'affichage.

Ce qu'il faut savoir c'est que parfois même lorsque l'on travaille en UTF8 il peut être judicieux de faire des recherches en full text dans une autre collation qui augmente les perfs de tes recherches dans un contexte de volumétrie moyenne voire importante. A ce moment là, et pour les tables concernées, il est nécessaire au niveau de ta table de convertir la collation de tes données à l'enregistrement et à l'extraction via un CAST par exemple. Attention cependant ces conversions selon le contexte de collation de départ et celui d'arrivée peut provoquer une perte de données (collation étendue -> collation simple). Il est préférable avant d'opter pour ce genre de techniques souvent indispensables de consulter la documentation pour vérifier tout ceci au préalable.

Cordialement,

Jc


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#6 13-12-2011 15:08:13

tropicalmadness
Membre
Inscription : 07-12-2011
Messages : 3

Re : Sauvegarde base de données

Bonjour Jc,

J'ai finalement décidé de passer tous les latin1_swedish_ci en utf8, tout semble fonctionner correctement...
Merci pour la précision de tes explications. Maintenant que j'ai des backup solides, on va pouvoir faire des tests d'optimisation !

Cordialement,

Hors ligne

Pied de page des forums