正如標題所說,我在匯入 go-mysql-driver 包時出錯。我已經在我的機器上安裝了 go-my-sql 驅動程式,但錯誤仍然存??在。我使用 XAMPP 進行本地托管,這是程式塊。
package model
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
type Table interface {
Name() string
Field() ([]string, []interface{})
}
func Connect(username string, password string, host string, database string) (*sql.DB, error) {
conn := fmt.Sprintf("%s:%s@tcp(%s:3306)/%s", username, password, host, database)
db, err := sql.Open("mysql", conn)
return db, err
}
func CreateDB(db *sql.DB, name string) error {
query := fmt.Sprintf("CREATE DATABASE %v", name)
_, err := db.Exec(query)
return err
}
func CreateTable(db *sql.DB, query string) error {
_, err := db.Exec(query)
return err
}
func DropDB(db *sql.DB, name string) error {
query := fmt.Sprintf("DROP DATABASE %v", name)
_, err := db.Exec(query)
return err
}
could not import github.com/go-sql-driver/mysql (no required modules provides package "github.com/go-sql-driver/mysql")
正在發生的事情的截圖
uj5u.com熱心網友回復:
您的 IDE 沒有向您展示全貌。通過go run main.go在命令列上運行(或您擁有的任何主檔案),您可以看到與您在 IDE 上看到的相同的錯誤,但有一些額外的內容:
$ go run main.go
main.go:7:5: no required module provides package github.com/go-sql-driver/mysql; to add it:
go get github.com/go-sql-driver/mysql
通過發出建議的命令go get github.com/go-sql-driver/mysql,您會將依賴項添加到您的go.mod檔案中,并且包的內容將下載到您的機器上。
您的下一次執行將起作用:
$ go run main.go
Hello world
我對您的代碼進行了一些小的修改以使其正常作業,為了完整起見,我將在此處添加它們:
- 我使用了相同的來源,但將
package名稱更改為main. - 我在檔案底部添加了一個 main 函式:
func main() {
fmt.Println("Hello world")
_, err := Connect("username", "password", "localhost", "db")
if err != nil {
panic(err)
}
}
- 我已經保存到一個名為
main.go - 我
go.mod通過運行go mod init test和初始化了檔案go mod tidy,然后我采取了答案開頭描述的步驟。
uj5u.com熱心網友回復:
您似乎閱讀了舊版 go 的教程。Go 1.17 要求依賴項必須在go.mod.
也許您可以先嘗試 go 模塊(https://go.dev/blog/using-go-modules)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364755.html
