我正在尝试学习如何使用database/sql带有go-sql-driver的包。我编写了以下简单程序并且它可以工作,但是我无法弄清楚如何打印多个字段。该数据库wiki1具有三个字段id,title和body。我查询“title1”,它是值之一,但我想打印“title”和“body”的值。我这个怎么办package mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")func main() { db, err := sql.Open("mysql", "root:Password1@/wiki1") if err != nil { fmt.Println(err) return } defer db.Close() st, err := db.Prepare("SELECT title FROM page WHERE title=?") if err != nil { fmt.Println(err) } rows, err := st.Query("title1") if err != nil { fmt.Println(err) } for rows.Next() { var title, body string if err := rows.Scan(&title); err != nil { fmt.Println(err) } fmt.Printf("%s\n", title) } if err := rows.Err(); err != nil { fmt.Println(err) }}
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
要阅读body和title而不仅仅是title,请首先更改语句。
改变
st, err := db.Prepare("SELECT title FROM page WHERE title=?")
至
st, err := db.Prepare("SELECT body, title FROM page WHERE title=?")
然后改变读数。改变
var title, body string
if err := rows.Scan(&title); err != nil {
fmt.Println(err)
}
至
var title, body string
if err := rows.Scan(&body, &title); err != nil {
fmt.Println(err)
}
这将读取两列。
要打印字段,您可以执行
fmt.Printf("title: %s\nbody: %s\n", title, body)
您将找到有关使用 database/sql 进行查询的更多详细信息,请阅读此相关问题。
- 1 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消