Tengo una aplicación en Zend Framework que debe ejecutarse para una zona horaria diferente a la del servidor. ¿Existe una opción para establecer el huso horario del servidor de base de datos (MySQL, en este caso) en application.ini?Cómo configurar la zona horaria de la base de datos en application.ini
Mis opciones actuales son:
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"
Sé que puedo hacer algo como SET timezone = 'Europe/London'
, pero realmente tienen que hacerlo en el archivo de configuración.
EDITAR
googlear alrededor descubrí que resources.db.params.driver_options.1002
se debe fijar el valor para PDO::MYSQL_ATTR_INIT_COMMAND
.
Por lo tanto, resources.db.params.driver_options.1002 = "SET NAMES utf8, time_zone = 'Europe/London'"
debería hacer el truco. Pero sin suerte hasta el momento.
edición final
encontrado. Después de mucho buscar y depuración me encontré con el siguiente código al 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
}
Como tengo resources.db.params.charset = "utf8"
en mi application.ini, se sobrescribe PDO::MYSQL_ATTR_INIT_COMMAND
.
Eliminar esa línea lo resolvió.
¿Diferente al servidor web, o diferente del servidor MySQL? –
Diferente de ambos servidores. – Esteban