如何在应用程序中设置数据库时区.ini
2022-08-30 20:05:01
我在Zend Framework中有一个应用程序,它必须为与服务器不同的时区运行。是否有选项可以在应用程序中设置数据库服务器(在本例中为 MySQL)时区.ini?
我目前的选项是:
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
}
正如我在应用程序中所做的那样.ini,它覆盖了 。resources.db.params.charset = "utf8"
PDO::MYSQL_ATTR_INIT_COMMAND
删除该行解决了它。