improve Timezone escape for driver dm/mysql (#2412)

This commit is contained in:
Lonely
2023-02-08 19:35:48 +08:00
committed by GitHub
parent 8ecfa91e5d
commit 013f8b216a
2 changed files with 9 additions and 2 deletions

View File

@ -72,7 +72,10 @@ func (d *Driver) Open(config *gdb.ConfigNode) (db *sql.DB, err error) {
// Demo of timezone setting:
// &loc=Asia/Shanghai
if config.Timezone != "" {
source = fmt.Sprintf("%s&loc%s", source, url.QueryEscape(config.Timezone))
if strings.Contains(config.Timezone, "/") {
config.Timezone = url.QueryEscape(config.Timezone)
}
source = fmt.Sprintf("%s&loc%s", source, config.Timezone)
}
if config.Extra != "" {
source = fmt.Sprintf("%s&%s", source, config.Extra)

View File

@ -12,6 +12,7 @@ import (
"database/sql"
"fmt"
"net/url"
"strings"
_ "github.com/go-sql-driver/mysql"
"github.com/gogf/gf/v2/database/gdb"
@ -76,7 +77,10 @@ func (d *Driver) Open(config *gdb.ConfigNode) (db *sql.DB, err error) {
config.User, config.Pass, config.Protocol, config.Host, config.Port, config.Name, config.Charset,
)
if config.Timezone != "" {
source = fmt.Sprintf("%s&loc=%s", source, url.QueryEscape(config.Timezone))
if strings.Contains(config.Timezone, "/") {
config.Timezone = url.QueryEscape(config.Timezone)
}
source = fmt.Sprintf("%s&loc=%s", source, config.Timezone)
}
if config.Extra != "" {
source = fmt.Sprintf("%s&%s", source, config.Extra)