본문 바로가기
MySql

MySQL GoLang 쿼리에 변수 전달

by 베이스 공부 2020. 11. 23.
반응형

먼저 내가 golang을 처음 접한 초보자 (며칠 전 시작)이고 실제로 언어를 적용하는 방법을 배우는 중이라고 말하겠습니다. 내 목표는 데이터베이스를 쿼리하고 사용자에게 데이터를 다시 제공하는 Web Rest API를 구축하는 것입니다.


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!를 배우기위한 여정을 계속할 때 감사하겠습니다.

 

해결 방법

 

나는 그것을 사용하지 않았지만 문서를 보면 이것이 당신이 추구하는 것입니까?

db.QueryRow("SELECT name FROM users WHERE id=?", userId)

SQL 안전한 방식으로 ? userId 로 바꿔야한다고 가정합니다.


 

참조 페이지 https://stackoverflow.com/questions/29090705

 

 

반응형

댓글