Mam aplikację w Zend Framework, która musi działać w innej strefie czasowej niż serwer. Czy istnieje opcja ustawienia strefy czasowej serwera bazy danych (MySQL w tym przypadku) w pliku application.ini?Jak ustawić strefę czasową bazy danych w aplikacji.ini
Moje obecne są opcje:
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"
wiem, że mogę zrobić coś takiego SET timezone = 'Europe/London'
, ale naprawdę trzeba to zrobić w pliku konfiguracyjnym.
EDIT
Googling wokół znalazłem że resources.db.params.driver_options.1002
należy ustawić wartość dla PDO::MYSQL_ATTR_INIT_COMMAND
.
Dlatego resources.db.params.driver_options.1002 = "SET NAMES utf8, time_zone = 'Europe/London'"
powinien zrobić lewę. Ale do tej pory nie było szczęścia.
EDIT FINAL
znalazł. Po wielu poszukiwaniach i debugowania Znalazłem następujący kod w 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
}
Jak mam resources.db.params.charset = "utf8"
w moim application.ini, został nadpisywania PDO::MYSQL_ATTR_INIT_COMMAND
.
Usunięcie tej linii rozwiązało.
inny niż serwer WWW, lub inny niż serwer MySQL? –
Inaczej niż oba serwery. – Esteban