大佬教程收集整理的这篇文章主要介绍了php – 为Zend_Db设置字符集的最佳方式(或至少比我目前在做的更好),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
config.ini:
[development] db.host = "localhost" dB.USERNAME = "root" db.password = "toor" db.dbname = "db_whoopdiedo" db.charset = "utf8"
bootstrap.PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { public function _initAutoload() { Zend_Registry::set( 'config',new Zend_Config_Ini(APPLICATION_PATH.'/configs/config.ini','development') ); Zend_Registry::set( 'db',Zend_Db::factory('Pdo_MysqL',Zend_Registry::get('config')->db) ); Zend_Registry::get('db')->setFetchMode(Zend_Db::FETCH_OBJ); Zend_Registry::get('db')->query("SET NAMES 'utf8'"); Zend_Registry::get('db')->query("SET CHARACTER SET 'utf8'"); } }
我认为在配置中添加字符集是足够的,但是如果我直接使用它设置它,他只应用它:
Zend_Registry::get('db')->query("SET NAMES 'utf8'"); Zend_Registry::get('db')->query("SET CHARACTER SET 'utf8'");
我的问题:是否有更好的方式设置字符集,也许配置明智?
/** * 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配置文件中,我们可以在上面的Bootstrap中找到资源“db”:
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,dbname不会是一个文件路径,而是一个字符串.
有关资源的更多文档可以在这里找到:
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;"
如果还有问题,请查看Rob ALLEN的zend框架教程博客文章,在akrabat dot com上以及关于ZF资源的UTF8和MysqL设置的第45号左右的注释.
以上是大佬教程为你收集整理的php – 为Zend_Db设置字符集的最佳方式(或至少比我目前在做的更好)全部内容,希望文章能够帮你解决php – 为Zend_Db设置字符集的最佳方式(或至少比我目前在做的更好)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。