ホームページ > データベース > mysql チュートリアル > Go言語でmysqlデータをクエリする方法

Go言語でmysqlデータをクエリする方法

PHPz
リリース: 2023-06-03 08:22:24
転載
1152 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート