首先让我说我是初学者(几天前开始)和golang,我正在学习如何实际应用这门语言。我的目标是构建一个Web Rest API,用于查询数据库并将数据提供给用户。
我已经能够使用martini(https://github.com/go-martini/martini)成功创建一个简单的API,并使用https://github.com/go-sql-driver/mysql连接到MySQL数据库。我目前的问题是如何将API请求中的变量param传递给我的查询。这是我目前的代码:
package main
import (
"github.com/go-martini/martini"
_ "github.com/go-sql-driver/mysql"
"database/sql"
"fmt"
)
func main() {
db, err := sql.Open("mysql",
"root:root@tcp(localhost:8889)/test")
m := martini.Classic()
var str string
m.Get("/hello/:user", func(params martini.Params) string {
var userId = params["user"]
err = db.QueryRow(
"select name from users where id = userId").Scan(&str)
if err != nil && err != sql.ErrNoRows {
fmt.Println(err)
}
return "Hello " + str
})
m.Run()
defer db.Close()
}
正如您所看到的,我的目标是获取输入变量(用户)并将其插入到名为userId的变量中。然后我想根据该变量查询数据库以获取名称。一旦完成所有工作,我想回复用户的名字。
有人可以帮忙吗?在我继续学习Go的过程中,我将非常感激!
答案 0 :(得分:7)
我还没有使用它,但是看看文档,这就是你要追求的吗?
db.QueryRow("SELECT name FROM users WHERE id=?", userId)
我认为它应该以sql安全的方式用?
替换userId
。