golang sqlite无法定义Query变量

时间:2014-08-20 19:28:02

标签: sql database sqlite go

似乎golang的sqlite包不像我的db.Query声明,尽管它与the example on github中的声明完全相同。

db, err := sql.Open("sqlite3", "./database.db")
if err != nil {
    log.Fatal(err)
}
defer db.Close()

rows, err = db.Query("select id, name from job")
if err != nil {
    log.Fatal(err)
}   
defer rows.Close()

fmt.Println("Jobs:")
for rows.Next() {
    var name string
    var id int
    fmt.Printf("%v %v\n", id, name)
}  

这是我得到的错误:

./test.go:7: undefined: rows
./test.go:7: cannot assign to rows
./test.go:11: undefined: rows
./test.go:14: undefined: rows

编辑:我已尝试使用db.Query()的严重重音和单引号字符串,但无济于事。

1 个答案:

答案 0 :(得分:4)

您无法为未声明的变量指定值。

rows, err = db.Query("select id, name from job")

应该是:

rows, err := db.Query("select id, name from job")

理论上这可以解决问题,但我没有尝试过。

你还应该添加:

rows.Scan(&id, &name)

在printf函数之前,实际将行的值分配给id&否则,名称变量将打印一个空字符串& 0