>  기사  >  백엔드 개발  >  Go 언어로 mysql 데이터를 쿼리하는 방법

Go 언어로 mysql 데이터를 쿼리하는 방법

PHPz
PHPz원래의
2023-03-22 14:23:561803검색

Golang은 다른 언어와 마찬가지로 다양한 데이터베이스와 상호 작용할 수 있는 새로운 프로그래밍 언어입니다. 이 기사에서는 Golang의 MySQL 드라이버를 사용하여 MySQL 데이터베이스를 쿼리하는 방법에 대해 설명합니다.

MySQL 드라이버를 사용하려면 다음 명령을 통해 Go 프로젝트에 드라이버를 설치해야 합니다.

go get github.com/go-sql-driver/mysql

설치가 완료된 후 이를 Golang 프로젝트로 가져와야 합니다.

import "github.com/go-sql-driver/mysql"

다음으로 필요한 것은 MySQL 데이터베이스 연결을 설정합니다. 다음은 "mydatabase"라는 데이터베이스에 연결하는 샘플 코드입니다.

db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/mydatabase")
if err != nil {
    log.Fatal(err)
}
defer db.Close()

연결 문자열에서 MySQL 서버의 포트(기본값은 3306)를 지정합니다.

MySQL 데이터베이스에 대한 연결이 설정되면 데이터 쿼리를 시작할 수 있습니다. 다음은 "users"라는 테이블에서 모든 사용자의 레코드를 검색하는 간단한 쿼리 예제입니다.

rows, err := db.Query("SELECT * FROM users")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

위 예제에서는 db.Query 함수를 사용하여 SQL 쿼리를 실행했습니다. 이 함수는 쿼리 결과의 모든 행을 포함하는 Rows 개체를 반환합니다.

다음으로 for 루프를 사용하여 모든 행을 순회하고rows.Scan 함수를 사용하여 열 값을 행 단위로 읽습니다. 마지막으로 쿼리 결과에 오류가 있는지 확인합니다.

물론 매개변수화된 쿼리를 사용하여 데이터를 보다 안전하게 쿼리할 수도 있습니다. 매개변수화된 쿼리는 SQL 삽입 공격을 방지합니다. 다음은 매개변수화된 쿼리를 사용하여 "john"이라는 사용자 레코드를 검색하는 샘플 코드 조각입니다.

rows, err := db.Query("SELECT * FROM users WHERE name = ?", "john")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

위 예에서는 쿼리 문자열에 "?" 자리 표시자를 사용하고 이를 쿼리 함수에 추가했습니다. 일치시키려는 매개변수가 전달됩니다.

요약:

이 문서에서는 Golang의 MySQL 드라이버를 사용하여 MySQL 데이터베이스를 쿼리하는 방법을 설명합니다. MySQL에 대한 연결을 설정하는 방법, 쿼리를 실행하는 방법, 매개변수화된 쿼리를 사용하는 방법을 보여주었습니다. 이 예제는 초보자에게 Golang을 사용하여 MySQL 데이터베이스와 상호 작용하는 방법에 대한 좋은 출발점을 제공합니다.

위 내용은 Go 언어로 mysql 데이터를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.