php - 如何使用 PDO 设置时区

标签 php mysql pdo

我有一个使用 PDO 的连接,箭头SET NAMES UTF8:

$options = [ PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8" ];

但我会添加 SET time_zone='America/Sao_Paulo'。但是在我尝试过的所有方法中,我都遇到了异常!

这是我的连接类:

//Conexão usando objeto PDO 单例模式

/** @var PDO */
private static $connect = null;

/**
 * Conecta com o banco de dados com o pattern singleton
 * Retorna um objeto PDO!
 */
private static function Conectar(){

    try {

        Setup::checkLocal();

        if(self::$connect == null) {
            $dsn = 'mysql:host='.Setup::$host.';dbname='.Setup::$base;
            $options = [ PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8; SET time_zone='America/Sao_Paulo'" ];
            self::$connect = new PDO($dsn, Setup::$user, Setup::$pass, $options);
        }

    } catch (PDOException $e) {
        echo 'PDOException: erro ao conectar ao banco de dados.';
        //PHPErro($e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine());
        die;
    }

    self::$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //self::$connect->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);

    return self::$connect;
}

/** Retorna um objeto PDO Singleton Pattern */
public static function getConn(){
    return self::Conectar();
}

public static function prepareQuery($query, $params){

    $preparedQuery = self::getConn()->prepare($query);
    foreach ($params as $key => $value) {
        $preparedQuery->bindValue($key, $value);
    }

    $preparedQuery->execute();
    $result = $preparedQuery->fetchAll(PDO::FETCH_OBJ);

    self::$connect = null;

    return $result;
}

最佳答案

这可能对您有所帮助。试试吧!

$pdo = new PDO('mysql:host=localhost;dbname=exampletable', 
'exampleuser', 
'examplepassw', 
[PDO::MYSQL_ATTR_INIT_COMMAND =>"SET NAMES utf8;SET time_zone = 'Europe/London'"]);

关于php - 如何使用 PDO 设置时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447065/

相关文章:

php - 从 php 网站连接到 php API

php - 使用 PHP 更改 MYSQL 中给定寄存器的时区

php - canvas toDataUrl() 如何将base64结果传入和传出mysql blob字段

php - c9.io php pdo 连接到 mysql

php - session 安全?

php - 如何显示结果

javascript - 从数组添加动态覆盖

mysql - 在 Laravel 中创建数据库

mysql - 无法将进化依赖添加到 Play!项目

php - 使用 PDO 查询代替 mysql 即弃用