gpt4 book ai didi

php - Cakephp 设置数据库时区

转载 作者:行者123 更新时间:2023-11-29 01:27:40 25 4
gpt4 key购买 nike

我将时区设置为 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'] 数组来执行此操作。但我不知道如何填充设置数组,也不知道在哪里是最好的地方。

我需要的是即时修改默认数据源配置

最佳答案

您可以向位于 app/Config/database.php 的配置数组添加一个额外的键,如下所示:

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'db_user',
'password' => 'db_pass',
'database' => 'db_name',
'prefix' => '',
'settings' => array(
'time_zone' => "'+01:00'", // note the quotes!
)
);

相关:CakePHP switch database (using same datasource) on the fly?

关于php - Cakephp 设置数据库时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33672852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com