Question

Je suis en suivant les instructions suivantes pour obtenir des registres de ma base de données.

Créer les modèles nécessaires (à partir du module params):

$obj_paramtype_model    = new Params_Model_DbTable_Paramtype();
$obj_param_model        = new Params_Model_DbTable_Param();

Obtenir les paramètres régionaux disponibles à partir de la base de données

// This returns a Zend_Db_Table_Row_Abstract class object
$obj_paramtype = $obj_paramtype_model->getParamtypeByValue('available_locales');

// This is a query used to add conditions to the next sentence. This is executed from the Params_Model_DbTable_Param instance class, that depends from Params_Model_DbTable_Paramtype class (reference map and dependentTables arrays are fine in both classes)
$obj_select = $this->select()->where('deleted_at IS NULL')->order('name');

// Execute the next query, applying the select restrictions. This returns a Zend_Db_Table_Rowset_Abstract class object. This means "Find Params by Paramtype"
$obj_params_rowset = $obj_paramtype->findDependentRowset('Params_Model_DbTable_Param', 'Paramtype', $obj_paramtype);

// Here the firebug log displays the queries....
Zend_Registry::get('log')->debug($obj_params_rowset);

J'ai un profileur pour toutes mes exécutions DB de Zend. A ce stade, les journaux et les objets profileur (qui comprend les auteurs Firebug), montre les requêtes SQL exécutées, et la dernière ligne affiche l'objet de classe Zend_Db_Table_Rowset_Abstract résultant. Si j'exécute les requêtes SQL dans certains client MySQL, les résultats sont attendus. Mais les écrans écrivain journal Zend Firebug comme NULL les valeurs des colonnes avec des caractères latins (n).

En d'autres termes, les émissions client SQL externes es_CO | Español de Colombie et en_US | Anglais des États-Unis mais la requête résulte de Zend affiche (et retours) es_CO | null et en_US | Anglais des États-Unis .

Je l'ai supprimé le ñ caractère de Español de Colombie et les résultats de la requête sont très bien dans mon écran Zend Log Firebug et dans l'élément Zend Form final.

La base de données MySQL, les tables et les colonnes sont en UTF-8 - collation utf8_unicode_ci. Toutes mes pages cadres sont en zend charset UTF-8. J'utilise XAMPP 1.7.1 (PHP 5.2.9, Apache sur le port 90 et MySQL 5.1.33-communauté) en cours d'exécution sur Windows 7 Édition Intégrale; Zend Framework 1.10.1.

Je suis désolé s'il y a tellement d'informations, mais je ne sais pas vraiment pourquoi est-ce possible, alors je tryed fournir autant d'informations connexes que je pouvais pour aider à trouver une réponse.

Était-ce utile?

La solution

comment faites-vous la connexion avec la base de données et définissez-vous le jeu de caractères à cet égard? C'était quelque chose que je négligé et que je ne peux pas le trouver dans votre question qui pourrait être le problème? Alors, comme je l'utilise le fichier .ini pour configurer la base de données, en ajoutant

resources.db.params.charset = utf8

Résolu toutes mes questions UTF8 requête. Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top