2015-07-02 55 views
-1

我試圖使用go語言在mysql數據庫中獲取多列。目前我可以修改這個腳本,並且它可以很好地用於只讀取一列,並使用http打印功能打印它。但是,當它提取兩件事情時,腳本不再起作用。我不知道我需要做什麼來解決它。我知道sql是好的,因爲我已經在mysql終端中測試過了,它給了我期望的結果。如何從mysql中使用go獲取多列lang

conn, err := sql.Open("mysql", "user:[email protected](localhost:3306)/database") 
statement, err := conn.Prepare("select first,second from table") 
rows, err := statement.Query() 
for rows.Next() { 
     var first string 
     rows.Scan(&first) 
     var second string 
     rows.Scan(&second) 
     fmt.Fprintf(w, "Title of first is :"+first+"The second is"+second) 
} 
conn.Close() 
+0

什麼是 「HTTP打印功能」? –

回答

2

您使用了錯誤的變量名,但我認爲這只是在你的示例代碼爲「錯字」。

那麼正確的語法是:

var first, second string 
rows.Scan(&first, &second) 

this什麼Scan(dest ...interface{})手段,以及如何使用它。

您還應該處理,而不是忽略錯誤。

最後,你應該使用Fprintf,因爲它的意圖:

fmt.Fprintf(w, "Title of first is : %s\nThe second is: %s", first, second) 
+0

%s是什麼意思? – matt

+0

請參閱https://golang.org/pkg/fmt/ - 它們是格式說明符,對大多數基於C的語言都是通用的。 – elithrar