Sobes.tech
Middle

Qu'est-ce que les requêtes préparées (prepared statements) ?

sobes.tech IA

Réponse de l'IA

Les requêtes préparées sont un mécanisme pour travailler avec des bases de données, dans lequel la requête SQL est compilée et optimisée une seule fois, puis peut être exécutée plusieurs fois avec différents paramètres.

Avantages :

  • Performance accrue lors des appels répétés à la même requête.
  • Sécurité — protection contre les injections SQL, car les paramètres sont passés séparément du texte de la requête.
  • Confort — les paramètres sont insérés automatiquement, sans avoir besoin d’échapper manuellement les valeurs.

En Go, la requête préparée est créée via la méthode Prepare de l’objet *sql.DB ou *sql.Tx :

stmt, err := db.Prepare("SELECT name FROM users WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

var name string
err = stmt.QueryRow(1).Scan(&name)
if err != nil {
    log.Fatal(err)
}
fmt.Println(name)

Ainsi, la requête est compilée une seule fois, puis peut être appelée plusieurs fois avec différents paramètres.