Golang构建错误:无法将*sqlx.DB分配给*sql.DB。

huangapple go评论72阅读模式
英文:

Golang build error: cannot assign *sqlx.DB to *sql.DB

问题

当我尝试构建我的项目时,它显示:

./main.go:140: 在多重赋值中,无法将 *sqlx.DB 分配给 db.Conn(类型为 *sql.DB)

我的 main.go 中的导入部分:

import (
    "html/template"
    "io/ioutil"
    "net/http"
    "regexp"
    "./network"
    "log"
    "./config"
    "./db"
    "fmt"
    "github.com/jmoiron/sqlx"
)

我的 db.go 是:

package db
import "database/sql"
import _ "github.com/go-sql-driver/mysql"

var Conn *sql.DB
var Err error

main.go 中的第 140 行:

db.Conn, db.Err = sqlx.Open(config.Db.Type, config.Db.User+":"+config.Db.Pass+"/"+config.Db.Name)

谢谢你的帮助。

英文:

When I try to build my project, it says:

./main.go:140: cannot assign *sqlx.DB to db.Conn (type *sql.DB) in multiple assignment

My imports in main.go:

import (
    "html/template"
    "io/ioutil"
    "net/http"
    "regexp"
    "./network"
    "log"
    "./config"
    "./db"
    "fmt"
    "github.com/jmoiron/sqlx"
)

My db.go is:

package db
import "database/sql"
import _ "github.com/go-sql-driver/mysql"

var Conn *sql.DB
var Err error

And 140th line from main.go:

db.Conn, db.Err = sqlx.Open(config.Db.Type, config.Db.User+":"+config.Db.Pass+"@/"+config.Db.Name)

Thanks for your help.

答案1

得分: 2

sqlx.Open 返回一个 sqlx.DB 结构体(这里是定义),它与 package database/sql 内部的 DB 结构体定义不同。
Conn 类型更改为 sqlx.DB,然后它应该可以工作。

英文:

sqlx.Open return a sqlx.DB struct (here the definition) that is different from the DB struct definition inside the package databqase/sql.
Change the Conn type to sqlx.DB and it should work.

huangapple
  • 本文由 发表于 2017年8月17日 22:20:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/45737715.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定