PHP/MySQL stocker le caractère €

kat
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:02

Bonjour,

Mon site PHP permet de saisir du texte libre dont le symbole euro. Malheureusement, celui-ci ets stockée dans la base sous la forme €

Comment faire pour quil soit stocké correctement? J'ai modifié la nature de la colonne où est stocké le texte pour la mettre en utf8 au lieu de latin1. Mais le problème persiste.
J'ai également ajouté avant d'exécuter la requête, la commande php :
$mysqli->query("SET NAMES 'utf8';");

Mais quand je fais un echo $mysqli->character_set_name() immédiatement après, celui-ci m'affiche toujours latin1_swedish_ci


Merci pour votre aide

Eléphant du PHP | 135 Messages

30 mai 2006, 16:31

Bonjour,

si tu utilises l'entité html ( € ) ?

kat
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:51

ok, j'avais oublié que le message est en html...
Je voulais donc dire que le symbole € est stockée dans mysql sous la forme de son code soit &#8364
C'est ça qui ne va pas!

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

30 mai 2006, 17:07

$chaine = str_replace("& #8364;", "& euro;", $chaine);

kat
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 17:11

Merci, mais ce n'est pas ça. Je trace ma requete et je vois bien que la requête exécutée est de la forme :
insert into table(champ) values ('€')

Mais quand je regarde en base la valeur de champ, j'ai '&#8364' et non '€'

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 mai 2006, 21:30

Merci, mais ce n'est pas ça. Je trace ma requete et je vois bien que la requête exécutée est de la forme :
insert into table(champ) values ('€')
Et tu la traces comment ta requête ? :roll: