Я использую следующие инструкции для получения некоторых регистров из моей базы данных.Результат запроса базы данных Zend преобразует значения столбца в нуль
Создание необходимых моделей (от модуля Params):
$obj_paramtype_model = new Params_Model_DbTable_Paramtype();
$obj_param_model = new Params_Model_DbTable_Param();
Получение доступных локали из базы данных
// 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);
У меня есть профайлер для всех моих БД расстрелов из Zend. На этом этапе объекты журнала и профайлера (включая записи Firebug) показывают выполненные SQL-запросы, а в последней строке отображается итоговый объект класса Zend_Db_Table_Rowset_Abstract. Если я выполняю SQL-запросы в некотором MySQL-клиенте, результаты ожидаются. Но журнал записи Zend Firebug отображает как NULL значения столбца с латинскими символами (ñ).
Другими словами, внешний клиент SQL показывает es_CO | Español de Colombia и ru_RU | Английский, но результаты запроса от Zend отображаются (и возвращаются) es_CO | null и en_US | Английский.
Я удалил персонаж ñ от Español де Колумбии и результаты запроса просто отлично на моем экране Zend Log Firebug, и в конечном элементе Zend Form.
База данных MySQL, таблицы и столбцы содержатся в UTF-8 - utf8_unicode_ci. Все мои рамки рамки zend находятся в кодировке UTF-8. Я использую XAMPP 1.7.1 (PHP 5.2.9, Apache в порту 90 и MySQL 5.1.33-community), работающий на Windows 7 Ultimate; Zend Framework 1.10.1.
Прошу прощения, если есть так много информации, но я действительно не знаю, почему это могло произойти, поэтому я попытался предоставить как можно больше связанной информации, чтобы помочь найти ответ.
Я не мог найти ответа на этот вопрос в ближайшее время, поэтому решил использовать Doctrine в качестве моей Zend Framework DB ORM. Но этот ответ выглядит хорошо. Я собираюсь создать еще один проект, чтобы проверить его, и я вернусь, чтобы еще раз прокомментировать ваш ответ. Если это решит эту проблему, я помечаю этот ответ как таковой. Большое вам спасибо за вашу помощь и приятный день. –