오늘도 한 뼘 더

[Go] error="sql: expected 4 destination arguments in Scan, not 1" 본문

Study/Go

[Go] error="sql: expected 4 destination arguments in Scan, not 1"

나른한댕댕이🐶 2022. 12. 20. 16:33
728x90
반응형

  # 배경  

golang으로 db 연결을 한 뒤에 작성한 query로 받아온 값들을 scan으로 불러오는 과정에서 에러가 발생하였다. 

 

  • 에러 내용
 error ="sql: expected 4 destination arguments in Scan, not 1"

 

  # 문제 원인  

쿼리에서는 총 4개의 필드를 불러오고 있는데 Scan은 하나만 받고 있어 서로 수가 맞지 않아 에러가 발생하였다.

  • 작성한 쿼리
 rows, err := db.Query("SELECT id, name, age, phone_number FROM test")
 if err != nil {
 	log.Fatal("Select Error : ", err)
 }
  • Scan 코드
var result string
for rows.Next() {
    err = rows.Scan(&result)
    if err != nil {
        return nil, err
    }
}

 

  # 해결 방법  

말 그대로 수가 맞지 않아 발생하였기 때문에 수를 맞춰서 Scan을 받으면 된다. 

  • 수정 후 Scan 코드
var name, phonenumer, id string
var age int
for rows.Next() {
    err = rows.Scan(&id, &name, &age, &phonenumber)
    if err != nil {
        return nil, err
    }
}
728x90
반응형
Comments