>  기사  >  데이터 베이스  >  Go 언어로 mysql 데이터를 쿼리하는 방법

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

PHPz
PHPz앞으로
2023-06-03 08:22:241092검색

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으로 문의하시기 바랍니다. 삭제