php - 我应该在哪里放置 SET time_zone = 'America/New_York'

标签 php mysql timezone

如何通过此类查询 MySQL 并在每次查询后设置 time_zone?我对于在以下代码块中放置时区命令的位置遇到一些麻烦:

class MyDB {

    private $connection;
    public $last_query;
    private $magic_quotes_active;
    private $real_escape_string_exists;
    function __construct(){
        $this->open_connection();
        $this->magic_quotes_active = get_magic_quotes_gpc();
        $this->real_escape_string_exists = function_exists("mysql_real_escape_string");
    }

    public function open_connection(){
        $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
        if(!$this->connection){
            die("Database connection failed: " . mysql_connect());
        } else {
            $db_select = mysql_select_db(DB_NAME, $this->connection);
            if(!$db_select){
                die("Database selection failed: " . mysql_error());

            }
        }
    }

    public function close_connection(){
        if(isset($this->connection)){
            mysql_close($this->connection);
            unset($this->connection);
        }
    }

    public function query($sql) {
        $this->last_query = $sql;   
        $result = mysql_query($sql, $this->connection);     
        $this->confirm_query($result);      
        return $result;
    }

    public function escape_value($value){
        if($this->real_escape_string_exists){ // PHP v.4.3.0 or higher
            //undo any magic quote effects so mysl_real_escape_string can do the work
            if($this->magic_quotes_active){
                $value = stripslashes($value);
            }
            $value = mysql_real_escape_string($value);
        } else { // before PHP v.4.3.0
            // if magic quotes aren't already on then add slashes manually
            if(!$this->magic_quotes_active) {
                $value = addslashes($value);
            }
            // if magic quotes are active, then the slashes already exist
        }
        return $value;
    }

    public function fetch_array($result_set){
        return mysql_fetch_array($result_set);
    }

    public function num_rows($result_set){
        return mysql_num_rows($result_set);
    }

    public function insert_id($result_set){
        return mysql_insert_id($this->connection);
    }

    public function affected_rows($result_set){
        return mysql_affected_rows($this->connection);
    }

    private function confirm_query($result){
        if(!$result){
            $output = "Database query failed: " . mysql_error() . "<br /><br />";
            $output .= "Last SQL query: ". $this->last_query;
            die($output);
        }

    }
}

$database = new MyDB(); $db =& $database;

最佳答案

你可以像这样动态设置它: date_default_timezone_set('美国/纽约');

关于php - 我应该在哪里放置 SET time_zone = 'America/New_York',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38024530/

相关文章:

php - 我如何在同一页面上有超过 1 个 MySQL UPDATE 查询?

php - 选择比较另一个表中的字段的记录

SQL - 如何使用另一个表中的计数进行排序

mysql - 如何限制 Tableau 中的查询模式

python - 如何在 Python 中构造 UTC `datetime` 对象?

django - Django 时区如何与 model.field 的 auto_now_add 一起工作

javascript - 类似 CLI 的时区选择建议

php - Zimbra SOAP 创建帐户

php - 直接上载Zend PHP:如何禁用对正在上载的视频的评论?

mysql - MySQL中的INDEX和VIEW有什么区别