如何在每次连接时使PDO运行SET NAMES utf8,在ZendFramework中

Ita*_*vka 40 php pdo zend-framework zend-db-table

如何在每次连接时使PDO适配器运行SET NAMES utf8,在ZendFramework中.我正在使用INI文件来保存适配器配置数据.我应该在那里添加什么条目?

如果不清楚,我正在寻找正确的语法,在我的项目的config.ini文件中,而不是在PHP代码中,因为我认为这是配置代码的一部分.

Sch*_*kie 121

害怕我的谷歌

$pdo = new PDO(
    'mysql:host=mysql.example.com;dbname=example_db',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Run Code Online (Sandbox Code Playgroud)

第一击;)


Dav*_*unt 47

伊泰,

一个非常好的问题.幸运的是,答案非常简单:

database.params.driver_options.1002 = "SET NAMES utf8"
Run Code Online (Sandbox Code Playgroud)

1002是常量PDO :: MYSQL_ATTR_INIT_COMMAND的值

您不能在config.ini中使用常量


taw*_*kov 32

把它放在你的配置中

database.params.charset = "utf8"
Run Code Online (Sandbox Code Playgroud)

或者在ZF 1.11之后,这将 resources.db.params.charset = utf8 是有效的

  • 这是现在最好的方法:) (4认同)
  • resources.db.params.charset = utf8为我工作 (2认同)