Application.ini veritabanı saat dilimini nasıl ayarlanır

0 Cevap php

Ben sunucudan farklı bir zaman dilimi için çalıştırmak zorunda Zend Framework bir uygulama var. Application.ini saat dilimi (bu durumda MySQL) veritabanı sunucusu ayarlamak için bir seçenek var mı?

Benim şu anki seçenekler şunlardır:

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"

Ben SET timezone = 'Europe/London' gibi bir şey biliyorum, ama gerçekten config dosyasında bunu yapmak gerekir.

EDIT

I-resources.db.params.driver_options.1002 PDO::MYSQL_ATTR_INIT_COMMAND için ayar değeri gerektiği bulunmuştur etrafında Googling.

Bu nedenle resources.db.params.driver_options.1002 = "SET NAMES utf8, time_zone = 'Europe/London'" should hile yapmak. Ama hayır şans şimdiye kadar.

FINAL EDIT

Found it. After a lot of searching and debugging I found the following code at 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
}

Benim application.ini yılında resources.db.params.charset = "utf8" var gibi, PDO::MYSQL_ATTR_INIT_COMMAND üzerine yazılmasını edildi.

O satırı silme çözdük.

0 Cevap