Zend risultato query di database converte i valori di colonna su null
-
22-09-2019 - |
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.
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.