我在Zend Framework中有一個應用程序,它必須運行與服務器不同的時區。有沒有在application.ini中設置數據庫服務器(本例中爲MySQL)時區的選項?如何在application.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'
,但我真的需要做的是在配置文件中。
編輯
周圍的Googling我發現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 \適配器\ 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
。
刪除該行解決了它。
不同於web服務器,還是不同於MySQL服務器? – 2010-12-19 20:42:21
與兩臺服務器不同。 – Esteban 2010-12-19 20:48:37