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
Une fois l'installation terminée, nous devons l'importer dans le projet Golang :
import "github.com/go-sql-driver/mysql"
Ensuite, nous besoin de configurer avec 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()
Notez que dans la chaîne de connexion, nous précisons le port du serveur MySQL, qui est 3306 par défaut.
Après avoir établi avec succès une connexion avec la base de données MySQL, nous pouvons lancer la requête de données. Vous trouverez ci-dessous un exemple simple qui récupère les enregistrements de tous les utilisateurs dans la 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) }
Nous avons adopté la fonction db.Query pour exécuter la requête SQL, comme le montre l'exemple ci-dessus. 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 les enregistrements utilisateur nommés "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) }
Dans l'exemple ci-dessus, nous avons utilisé l'espace réservé "?" dans la chaîne de requête et dans les paramètres de la fonction Query. vous souhaitez faire correspondre est transmis.
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!