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

PHPz
풀어 주다: 2023-06-03 08:22:24
앞으로
1090명이 탐색했습니다.

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)
}
로그인 후 복사

위 예에서는 쿼리 문자열과 쿼리 함수의 매개변수에 "?" 자리 표시자를 사용했습니다. 일치시키려는 항목이 전달되었습니다.

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

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿