Maison > développement back-end > Golang > le corps du texte

Comment interroger des données MySQL en langage Go

PHPz
Libérer: 2023-03-22 15:07:53
original
1824 Les gens l'ont consulté

Golang est un langage de programmation émergent qui, comme d'autres langages, peut interagir avec une variété de bases de données. Dans cet article, nous verrons comment interroger une base de données MySQL à l'aide du pilote MySQL dans Golang.

Pour utiliser le pilote MySQL, nous devons l'installer dans notre projet Go via la commande suivante :

go get github.com/go-sql-driver/mysql
Copier après la connexion

Une fois l'installation terminée, nous devons l'importer dans le projet Golang :

import "github.com/go-sql-driver/mysql"
Copier après la connexion

Ensuite, nous avons besoin pour configurer la connexion à la base de données MySQL. Voici l'exemple de code qui permettra de se connecter à une base de données nommée "mydatabase" :

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

Notez que dans la chaîne de connexion, nous précisons le port du serveur MySQL, qui est 3306 par défaut.

Une fois la connexion à la base de données MySQL établie, nous pouvons commencer à interroger les données. Voici un exemple de requête simple qui récupère les enregistrements de tous les utilisateurs d'une table nommée "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)
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons utilisé la fonction db.Query pour exécuter la requête SQL. Cette fonction renverra un objet Rows contenant toutes les lignes des résultats de la requête.

Ensuite, nous utilisons une boucle for pour parcourir toutes les lignes et utilisons la fonction rows.Scan pour lire les valeurs des colonnes ligne par ligne. Enfin, nous vérifions les erreurs dans les résultats de requête.

Bien sûr, nous pouvons également utiliser des requêtes paramétrées pour interroger les données de manière plus sûre. Les requêtes paramétrées empêchent les attaques par injection SQL. Voici un exemple d'extrait de code qui utilise une requête paramétrée pour récupérer un enregistrement utilisateur nommé "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)
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons utilisé l'espace réservé "?" dans la chaîne de requête et l'avons ajouté dans la fonction Query. vous souhaitez faire correspondre est passé dans le paramètre.

Résumé :

Cet article explique comment utiliser le pilote MySQL de Golang pour interroger une base de données MySQL. Nous avons montré comment établir une connexion à MySQL, comment exécuter des requêtes et comment utiliser des requêtes paramétrées. Ces exemples fournissent aux débutants un bon point de départ sur la façon de commencer à utiliser Golang pour interagir avec une base de données MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal