英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论