登录
首页 >  Golang >  Go问答

golang sql.open() 预期接收 1 个参数却传入 0 个

来源:stackoverflow

时间:2024-03-22 20:45:30 237浏览 收藏

在尝试使用 Go 连接到本地 MySQL 数据库时,出现错误:“恐慌:sql:预期 0 个参数,得到 1 个”。这表明 `sql.Open()` 函数期望一个参数,但当前提供的参数为 0 个。

问题内容

我正在尝试使用 golang 连接到本地的 mysql 数据库,它构建得很好,但运行它会出现以下错误:

恐慌:sql:预期 0 个参数,得到 1 个

我的连接如下所示:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func DBConn() {
    team := "software"
    db, err := sql.Open("mysql", "root:12345678@tcp(localhost:3306)/flexlocal")
    if err != nil {
        fmt.Println("this is where it all went wrong")
        fmt.Printf(err.Error())
        panic(err)
    }
}

根据我的研究,这就是它的工作原理,但它对我不起作用。


解决方案


请尝试使用go中的dbconn函数连接mysql

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
    func dbConn(setDatbaseInstance string) (db *sql.DB) {
        dbDriver := "mysql"
        dbUser := "*****"
        dbPass := "*****"
        dbName := "*****"
        db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@tcp("+setDatbaseInstance+":3306)/"+dbName)
        if err != nil {
            fmt.Printf("%#v\n DB_ERROR_CONNECTION\n", err.Error());
            // return err.Error()
        }else{
             fmt.Println("Connection Established")
        }
        erro:=db.Ping()
        if erro!=nil {
         //do something here
            fmt.Printf("%#v\n DB_PING_ERROR_CONNECTION\n", erro.Error());
        }


        return db
    }

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>