我正在嘗試學習如何使用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 關注
- 220 瀏覽
添加回答
舉報
0/150
提交
取消