php - 如何在 application.ini 中设置数据库时区

标签 php mysql zend-framework

我在 Zend Framework 中有一个应用程序,它必须在与服务器不同的时区运行。是否可以在 application.ini 中设置数据库服务器(本例中为 MySQL)时区?

我目前的选择是:

resources.db.adapter = "Pdo_Mysql"
resources.db.params.charset = "utf8"
resources.db.params.driver_options.1002 = "SET NAMES utf8"
resources.db.params.host = "localhost"
resources.db.params.username = "usernam"
resources.db.params.password = "password"
resources.db.params.dbname = "databasename"

我知道我可以执行 SET timezone = 'Europe/London' 之类的操作,但我确实需要在配置文件中执行此操作。

编辑

谷歌搜索我发现 resources.db.params.driver_options.1002 应该设置 PDO::MYSQL_ATTR_INIT_COMMAND 的值。

因此 resources.db.params.driver_options.1002 = "SET NAMES utf8, time_zone = 'Europe/London'" 应该解决问题。但到目前为止还没有运气。

最终编辑

找到了。 经过大量搜索和调试,我在 Zend\Db\Adapter\Pdo\Mysql.php 找到了以下代码

if (!empty($this->_config['charset'])) {
    $initCommand = "SET NAMES '" . $this->_config['charset'] . "'";
    $this->_config['driver_options'][1002] = $initCommand; // 1002 = PDO::MYSQL_ATTR_INIT_COMMAND
}

由于我的 application.ini 中有 resources.db.params.charset = "utf8",它正在覆盖 PDO::MYSQL_ATTR_INIT_COMMAND

删除该行解决了它。

最佳答案

我正在回答我自己的问题只是为了结束这个问题,因为回复已经在其中一个编辑中。

resources.db.params.charset

resources.db.params.driver_options.1002

因为我在我的 application.ini 中不能一起使用,因为 resources.db.params.charset overwirites driver_options.1002

如果需要设置时区,移除resources.db.params.charset 并在driver_options 的charset 中传递时区。 例如:

resources.db.params.driver_options.1002 = "SET NAMES utf8, time_zone = 'Europe/London'"

关于php - 如何在 application.ini 中设置数据库时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484965/

相关文章:

php - 为什么我只得到存储在 session 中的数组中的第一个字符?

php - foreach 中的 if else 语句导致错误

php - 使用 CakePHPs find 返回匹配条件数组的所有记录

mysql - 如何更新表A中所有行的值应该更新表b和c中所有相应的列值

java - 由 : java. lang.NoClassDefFoundError : Could not initialize class javassist. util.proxy.DefineClassHelper 引起

javascript - 从 js 页面发送数据后,我无法插入

javascript - 尝试获取非对象的属性 -> 如何检查对象是否存在

zend-framework - 是否可以在Zeni_Config_Ini中解析的ini文件中指定数组

mysql - Zend 主从 mysql

zend-framework - 如何提高 Zend Framework 的学习速度?