【发布时间】:2016-02-13 20:39:13
【问题描述】:
我将时区设置为 php 和 mysql 以国际化我的 CakePHP 应用程序。
当服务器收到来自客户端的请求时,在处理请求之前,它会连接到 GeoIp 位置服务器并获取时区。然后我使用date_default_timezone_set() 设置php 时区。当我想设置数据库时区时,问题就出现了。连接 Cakephp 后,我需要执行像 SET time_zone='-06:00' 这样的 sql 查询。
在 /lib/Cake/Model/Datasource/Database/Mysql.php 我可以在 connect() 函数中看到以下代码:
try {
$this->_connection = new PDO(
$dsn,
$config['login'],
$config['password'],
$flags
);
$this->connected = true;
if (!empty($config['settings'])) {
foreach ($config['settings'] as $key => $value) {
$this->_execute("SET $key=$value");
}
}
} catch (PDOException $e) {
throw new MissingConnectionException(array(
'class' => get_class($this),
'message' => $e->getMessage()
));
}
有一个 $config['settings'] 数组可以配置为执行此操作。但我不知道如何填充设置数组以及最好的地方。
我需要即时修改默认数据源配置
【问题讨论】:
标签: php mysql cakephp internationalization