mysql - golang mysql undefined : sql. 查询

标签 mysql go

我正在尝试执行如下 golang 数据库查询:

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

var (
    name string
    id int
    age int
)

func main() {
    rows, err := sql.Open("mysql", "dbaccess:dbaccess@/dbaccess")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    rows, err = sql.Query("select * from people where id = ?", 1)
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    for rows.Next() {
        err := rows.Scan(&id, &name)
        if err != nil {
        panic(err.Error())
        }
        fmt.Println(id, name)
    }
    err = rows.Err()
    if err != nil {
        panic(err.Error())
}

}

但是我得到了错误:

20: undefined: sql.Query

我试图在 = 之前放一个冒号,但随后出现错误:

20: no new variables on left side of :=

我错过了什么?我知道代码中还有其他错误,但我只是尝试调试/学习。

最佳答案

查看documentation . Open 返回一个“指向数据库的指针”,Query 是使用这个指针(而不是 sql)的方法。所以你需要做这样的事情:

db, err := sql.Open("mysql", "dbaccess:dbaccess@/dbaccess")
if err != nil {
    panic(err.Error())
}
defer rows.Close()

rows, err := db.Query("select * from people where id = ?", 1)
if err != nil {
    panic(err.Error())
}
defer rows.Close()

关于mysql - golang mysql undefined : sql. 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563303/

相关文章:

http - 如何使用 httptest 在 Go 中测试 http 调用

mysql - 插入语句中的值与插入的值不匹配

list - 使用 golang 的列表中最后一个元素的第 Kth

go - 错误 : failed post-processing: 820:39: missing ',' in argument list

google-app-engine - 是否可以嵌入包而不复制它?

php - Ajax 代码仅适用于第一个 <li>

java - 在JSP上使用超链接显示关系数据库记录的数据库

javascript - Laravel和Flutter通知系统

mysql - SQL查询按月排序和分组的数据

go - 如何在 go 中使用 channel 填充数组