代码拉取完成,页面将自动刷新
package eztools
import (
"database/sql"
"encoding/xml"
)
const (
strSQL = "mysql"
strCfgFile = "eztools"
)
// ConnectWtParam connects to the database using parameters.
func ConnectWtParam(user, pass, ip, database string) (db *sql.DB, err error) {
if len(user) < 1 || len(database) < 1 || len(ip) < 1 || len(pass) < 1 {
return nil, ErrInvalidInput
}
db, err = sql.Open(strSQL, user+":"+pass+"@"+ip+"/"+database)
if err != nil {
return
}
err = db.Ping()
if err != nil {
return nil, err
}
return
}
var cfg struct {
Root xml.Name `xml:"eztools"`
StrUSER string `xml:"user"`
StrPASS string `xml:"pass"`
StrIP string `xml:"ip"`
StrDB string `xml:"db"`
}
// ConnectWtCfg connects to the database using parameters from an xml file
// root element is named "root", elements include "ip", "db", "user" and "pass"
func ConnectWtCfg(file string) (*sql.DB, error) {
if _, err := XMLsReadDefaultNoCreate("", file, &cfg); err != nil {
return nil, err
}
return ConnectWtParam(cfg.StrUSER, cfg.StrPASS, cfg.StrIP, cfg.StrDB)
}
// ConnectWtPath connects to the database using path as config file
func ConnectWtPath(path string) (*sql.DB, error) {
if _, err := XMLsReadDefaultNoCreate(path, "", &cfg); err != nil {
return nil, err
}
return ConnectWtParam(cfg.StrUSER, cfg.StrPASS, cfg.StrIP, cfg.StrDB)
}
// Connect connects to the database using parameters from eztools.xml
// root element is named "root", elements include "ip", "db", "user" and "pass"
func Connect() (*sql.DB, error) {
return ConnectWtCfg(strCfgFile)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。