Во-первых, я бы разбил настройку вашей базы данных на ее собственную функцию инициализации следующим образом:
/**
* Initiate Zend Autoloader
* @return Zend_Db_Adapter
*/
protected function _initDatabase()
{
$resource = $this->getPluginResource('db');
$db = $resource->getDbAdapter();
Zend_Registry::set("db", $db);
return $db;
}
В приведенном выше примере используются ресурсы, которые являются предопределенными структурами конфигурации для некоторых общих задач в Zend Framework.Просто имея следующее в моем файле конфигурации application.ini, мы можем обратиться к ресурсу 'db' в приведенном выше Bootstrap:
resources.db.adapter = "pdo_sqlite"
resources.db.params.host = "localhost"
resources.db.params.username = "databaseuser"
resources.db.params.password = "mysecretpassword"
resources.db.params.dbname = APPLICATION_PATH "/data/db/ccymod.db"
resources.db.isDefaultTableAdapter = true
Этот пример для базы данных sqlite, но MySQL будет выглядеть аналогично, но сpdo_mysql и имя базы данных - это не путь к файлу, а строка.
Дополнительную документацию по ресурсам можно найти здесь:
http://framework.zend.com/manual/en/zend.application.available-resources.html
Теперь, используя раздел конфигурации ресурсов agin, мы можем добавить к нему следующие строки для установки базы данных.набор символов примерно так:
resources.db.params.charset = "utf8"
resources.db.params.driver_options.1002 = "SET NAMES utf8;"
Если у вас все еще есть проблемы, взгляните на блог-учебник Роба Аллена по Zend Framework на akrabat dot com и комментарии, начиная с номера 45 и далее относительно UTF8 и установки mysqlдля ресурсов ZF.