2015-07-02 31 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