Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je viens de tomber sur un soucis qui me laisse sur le c** ...
(je suis sous MySQL)
J'exécute ce code dans un de mes models
[lang=php] // on ajoute une ligne en bdd $new_action = $this->createRow(); $new_action->id_maintenance = $id_maintenance; $new_action->action = $action; $new_action->description = $description; $new_action->etat = 0; return $new_action->save();
Et pour une raison qui m'échappe si je mets un accent dans $action ou $description, la chaine enregistrée en BDD se stoppe juste avant l'accent... J'ai testé, juste avant le return $new_action->save(); de vérifier qu'il a bien un accent pour la variable $new_action->description et oui ...
Je suis donc allé sur phpmyadmin et j'ai entré une ligne à la main avec des accents à gogo et aucun soucis ... Je suis donc sans voix... je comprends pas pourquoi au moment du save() il décide d’arrêter la chaîne au premier accent rencontré.
Si quelqu'un a une idée je suis preneur. Le projet est à rendre demain et ce n'est pas gênant mais j'aimerai bien comprendre d'où vient ce bug.
Hors ligne
Est-ce que tu précises bien l'encodage utilisé lors du transport ?
Hors ligne
je précise que la connexion à la base de données est en UTF-8 dans le fichier de config :
resources.db.params.charset = "utf8"
La bdd et les tables sont en utf8_unicode_ci. Les autres codes/tables n'ont aucun soucis.
Hors ligne
ça ressemble quand même à un problème d'encodage...
et tes fichiers php ils sont encodés comment ?
Hors ligne
UTF-8 d'après la commande : chardet et j'ai utilisé le même IDE avec tous mes fichiers et il n'y a que celui-ci qui fait ça.
Hors ligne
Donc avant d'aller plus loin dans le raisonnement je veux que tu me confirmes que :
Tout est bien en UTF8
- Ton éditeur de fichiers
- le projet
- les fichiers
- la base de données
- la table
- le champ incriminé
- la communication avec la base de données
Si tout est confirmé on ira chercher autre part mais d'expérience c'est un problème d'encodage
Hors ligne
- Ton éditeur de fichiers : Oui
- le projet : Comment vérifier ? Y a quelque chose à préciser dans le fichier de config ?
- les fichiers : Oui
- la base de données : utf8_unicode_ci
- la table : utf8_unicode_ci
- le champ incriminé : il y a 2 champs, tous les deux en : utf8_unicode_ci
- la communication avec la base de données : UTF-8 précisé dans le fichier de config pour zend.
Hors ligne
dans ce cas,
vérifie que tu as dans tes fichiers HTML cette meta donnée
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
et enventuellement que tu n'utilises pas les fonctions utf8_decode et utf8_encode qui peuvent poser problème quand tu es déjà full utf8
Hors ligne
je n'ai pas de balise meta n'y rien. Ce code sert à une API android du coup je retourne juste un tableau en json avec des données. Et le soucis a lieu dans la bdd et non pas à l'affichage. et je n'utilise n'y utf8_encode ou utf8_decode. Je rappel qu'au moment de l'insertion des données en bdd donc au moment de $new_action->save(); la valeur de $new_action->description = $description; a encore les accents qu'il faut.
Hors ligne
oui d'accord donc les données que tu insère en bdd, elles proviennent d'ou ?
Hors ligne
De la requete en POST. ($this->getRequest()->getPost()
Hors ligne
Pages: 1