Domanda

Sono utilizzando le seguenti istruzioni per ottenere alcuni registri dal mio database.

Crea i modelli necessari (dal modulo params):

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

Come le variabili locali dal database

// 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);

Ho un profiler per tutte le mie esecuzioni DB da Zend. A questo punto gli oggetti di log e Profiler (che comprende scrittori Firebug), mostra l'esecuzione di query SQL, e l'ultima riga visualizza l'oggetto della classe Zend_Db_Table_Rowset_Abstract risultante. Se eseguo le query SQL in qualche MySQL Client, sono come previsto i risultati. Ma il registro scrittore display Zend Firebug come NULL i valori delle colonne con caratteri latini (N).

In altre parole, il client SQL spettacoli esterna es_CO | Español de Colombia e it | Inglese di Stati Uniti , ma il risultato di query display Zend (e restituisce) es_CO | nullo e it | Inglese di Stati Uniti .

Ho cancellato il n di carattere da Español de Colombia ed i risultati della query sono proprio bene nel mio schermo Zend Log Firebug, e l'elemento finale Zend modulo.

I MySQL database, tabelle e colonne sono in UTF-8 - collazione utf8_unicode_ci. Tutte le mie pagine Zend Framework sono in UTF-8 charset. Sto usando XAMPP 1.7.1 (PHP 5.2.9, Apache sulla porta 90 e MySQL 5.1.33-comunità) in esecuzione su Windows 7 Ultimate; Zend Framework 1.10.1.

Mi dispiace se ci sono così tante informazioni, ma io in realtà non so perché è potuto accadere, così ho provato a fornire quante più informazioni correlate che potevo per aiutare a trovare qualche risposta.

È stato utile?

Soluzione

Come si fa a fare il collegamento con il database e lo si definisce il set di caratteri a tale riguardo? E 'stato qualcosa che ho trascurato e come io non riesco a trovarlo nella sua domanda che potrebbe essere il problema? Così, come io uso il file .ini per l'installazione del database, aggiungendo

resources.db.params.charset = utf8

risolto tutti i miei problemi di query UTF8. Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top